wheel.py (1299B)
1 from copy import deepcopy 2 3 import pytest 4 from tests.classic.perform_actions.support.refine import get_events 5 6 pytestmark = pytest.mark.asyncio 7 8 9 @pytest.mark.parametrize("device_pixel_ratio", ["1.0", "2.0", "0.5"]) 10 async def test_scroll_delta_device_pixel( 11 configuration, url, geckodriver, device_pixel_ratio 12 ): 13 config = deepcopy(configuration) 14 15 prefs = config["capabilities"]["moz:firefoxOptions"].get("prefs", {}) 16 prefs.update({"layout.css.devPixelsPerPx": device_pixel_ratio}) 17 config["capabilities"]["moz:firefoxOptions"]["prefs"] = prefs 18 19 try: 20 driver = geckodriver(config=config) 21 driver.new_session() 22 23 driver.session.url = url( 24 "/webdriver/tests/support/html/test_actions_scroll.html" 25 ) 26 27 target = driver.session.find.css("#scrollable", all=False) 28 29 chain = driver.session.actions.sequence("wheel", "wheel_id") 30 chain.scroll(0, 0, 5, 10, origin=target).perform() 31 32 events = get_events(driver.session) 33 assert len(events) == 1 34 assert events[0]["type"] == "wheel" 35 assert events[0]["deltaX"] == 5 36 assert events[0]["deltaY"] == 10 37 assert events[0]["deltaZ"] == 0 38 assert events[0]["target"] == "scrollable-content" 39 40 finally: 41 await driver.stop()