chrome.py (1114B)
1 import pytest 2 from support.context import using_context 3 from tests.classic.execute_async_script import execute_async_script 4 from tests.support.asserts import assert_success 5 from webdriver.client import WebFrame, WebWindow 6 7 8 @pytest.mark.parametrize( 9 "expression, expected_type", 10 [ 11 ("window.frames[0]", WebFrame), 12 ("window", WebWindow), 13 ], 14 ids=["frame", "window"], 15 ) 16 @pytest.mark.allow_system_access 17 def test_web_reference( 18 session, expression, default_chrome_handler, new_chrome_window, expected_type 19 ): 20 chrome_url = f"{default_chrome_handler}test.xhtml" 21 new_window = new_chrome_window(chrome_url) 22 23 with using_context(session, "chrome"): 24 session.window_handle = new_window.id 25 assert session.url == chrome_url 26 27 result = execute_async_script(session, f"arguments[0]({expression})") 28 reference = assert_success(result) 29 30 assert isinstance(reference, expected_type) 31 32 if isinstance(reference, WebWindow): 33 assert reference.id in session.handles 34 else: 35 assert reference.id not in session.handles