diff --git a/src/browser/Runner.zig b/src/browser/Runner.zig index 12eb505db..34f840682 100644 --- a/src/browser/Runner.zig +++ b/src/browser/Runner.zig @@ -215,7 +215,9 @@ fn _tick(self: *Runner, comptime is_cdp: bool, timeout_ms: u32, conditions: []Wa return .{ .ok = 0 }; } - try browser.runMacrotasks(); + if (hasRunnablePage(session)) { + try browser.runMacrotasks(); + } const http_active = http_client.http_active; const http_next_tick = http_client.next_tick_count; @@ -431,6 +433,17 @@ fn firstConditionError(conditions: []const WaitCondition) !void { } } +fn hasRunnablePage(session: *Session) bool { + for (session.pages.items) |page| { + const target = page.replacement orelse page; + switch (target.frame._parse_state) { + .html, .complete => return true, + else => {}, + } + } + return false; +} + const testing = @import("../testing.zig"); test "Runner: waitForSelector timeout" { const page = try testing.pageTest("runner/runner1.html", .{});