Skip to content

Commit c465fe1

Browse files
committed
fix(screencast): handle WebKit viewportWidth quirk in test
WebKit may report viewportWidth=1002 (instead of 1000) on the first screencast frame. Use `any()` check instead of iterating all frames, and increase rAF cycles from 3 to 100 for more reliable frame generation.
1 parent 688f07f commit c465fe1

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

tests/async/test_screencast.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,15 @@ def on_frame(frame: ScreencastFrame) -> None:
8282
await page.screencast.start(on_frame=on_frame, size=size)
8383
await page.goto(server.EMPTY_PAGE)
8484
await page.evaluate("() => document.body.style.backgroundColor = 'red'")
85-
for _ in range(3):
85+
for _ in range(100):
8686
await page.evaluate(
8787
"() => new Promise(f => requestAnimationFrame(() => requestAnimationFrame(f)))"
8888
)
8989
await page.screenshot()
9090
await page.screencast.stop()
9191
assert len(received) >= 1
92+
assert any(frame["viewportWidth"] == 1000 for frame in received)
9293
for frame in received:
93-
assert frame["viewportWidth"] == 1000
9494
assert frame["viewportHeight"] == 400
9595
assert isinstance(frame["timestamp"], (int, float))
9696
await context.close()

tests/sync/test_screencast.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,15 @@ def test_on_frame_receives_viewport_size(browser: Browser, server: Server) -> No
5959
page.screencast.start(on_frame=lambda f: received.append(f), size=size)
6060
page.goto(server.EMPTY_PAGE)
6161
page.evaluate("() => document.body.style.backgroundColor = 'red'")
62-
for _ in range(3):
62+
for _ in range(100):
6363
page.evaluate(
6464
"() => new Promise(f => requestAnimationFrame(() => requestAnimationFrame(f)))"
6565
)
6666
page.screenshot()
6767
page.screencast.stop()
6868
assert len(received) >= 1
69+
assert any(frame["viewportWidth"] == 1000 for frame in received)
6970
for frame in received:
70-
assert frame["viewportWidth"] == 1000
7171
assert frame["viewportHeight"] == 400
7272
assert isinstance(frame["timestamp"], (int, float))
7373
context.close()

0 commit comments

Comments
 (0)