Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

import pytest
from support.context import using_context
from tests.classic.execute_script import execute_script
from tests.support.asserts import assert_success
from webdriver.client import WebFrame, WebWindow
@pytest.mark.parametrize(
"expression, expected_type",
[
("window.frames[0]", WebFrame),
("window", WebWindow),
],
ids=["frame", "window"],
)
@pytest.mark.allow_system_access
def test_web_reference(
session, expression, default_chrome_handler, new_chrome_window, expected_type
):
chrome_url = f"{default_chrome_handler}test.xhtml"
new_window = new_chrome_window(chrome_url)
with using_context(session, "chrome"):
session.window_handle = new_window.id
assert session.url == chrome_url
result = execute_script(session, f"return {expression}")
reference = assert_success(result)
assert isinstance(reference, expected_type)
if isinstance(reference, WebWindow):
assert reference.id in session.handles
else:
assert reference.id not in session.handles