15
15
import asyncio
16
16
import os
17
17
import re
18
+ import sys
18
19
19
20
import pytest
20
21
@@ -241,7 +242,21 @@ async def test_should_work_for_webkitdirectory(page):
241
242
assert file_chooser .is_multiple ()
242
243
243
244
244
- async def test_wheel_should_work (page : Page , server ):
245
+ def _assert_wheel_event (expected , received , browser_name ):
246
+ # Chromium reports deltaX/deltaY scaled by host device scale factor.
247
+ # https://bugs.chromium.org/p/chromium/issues/detail?id=1324819
248
+ # https://github.com/microsoft/playwright/issues/7362
249
+ # Different bots have different scale factors (usually 1 or 2), so we just ignore the values
250
+ # instead of guessing the host scale factor.
251
+ if sys .platform == "darwin" and browser_name == "chromium" :
252
+ del expected ["deltaX" ]
253
+ del expected ["deltaY" ]
254
+ del received ["deltaX" ]
255
+ del received ["deltaY" ]
256
+ assert received == expected
257
+
258
+
259
+ async def test_wheel_should_work (page : Page , server , browser_name : str ):
245
260
await page .set_content (
246
261
"""
247
262
<div style="width: 5000px; height: 5000px;"></div>
@@ -250,17 +265,21 @@ async def test_wheel_should_work(page: Page, server):
250
265
await page .mouse .move (50 , 60 )
251
266
await _listen_for_wheel_events (page , "div" )
252
267
await page .mouse .wheel (0 , 100 )
253
- assert await page .evaluate ("window.lastEvent" ) == {
254
- "deltaX" : 0 ,
255
- "deltaY" : 100 ,
256
- "clientX" : 50 ,
257
- "clientY" : 60 ,
258
- "deltaMode" : 0 ,
259
- "ctrlKey" : False ,
260
- "shiftKey" : False ,
261
- "altKey" : False ,
262
- "metaKey" : False ,
263
- }
268
+ _assert_wheel_event (
269
+ await page .evaluate ("window.lastEvent" ),
270
+ {
271
+ "deltaX" : 0 ,
272
+ "deltaY" : 100 ,
273
+ "clientX" : 50 ,
274
+ "clientY" : 60 ,
275
+ "deltaMode" : 0 ,
276
+ "ctrlKey" : False ,
277
+ "shiftKey" : False ,
278
+ "altKey" : False ,
279
+ "metaKey" : False ,
280
+ },
281
+ browser_name ,
282
+ )
264
283
await page .wait_for_function ("window.scrollY === 100" )
265
284
266
285
0 commit comments