def test_add_init_script_work_with_browser_context_scripts_for_already_created_pages(
        page: Page, context: BrowserContext) -> None:
    context.add_init_script("window.temp = 123")
    page.add_init_script("window.injected = window.temp")
    page.goto(
        "data:text/html,<script>window.result = window.injected</script>")
    assert page.evaluate("window.result") == 123
def test_add_init_script_support_multiple_scripts(page: Page) -> None:
    page.add_init_script("window.script1 = 1")
    page.add_init_script("window.script2 = 2")
    page.goto(
        "data:text/html,<script>window.result = window.injected</script>")
    assert page.evaluate("window.script1") == 1
    assert page.evaluate("window.script2") == 2
def test_add_init_script_work_with_content(page: Page):
    page.add_init_script("window.injected = 123")
    page.goto(
        "data:text/html,<script>window.result = window.injected</script>")
    assert page.evaluate("window.result") == 123
예제 #4
0
def stealth_sync(page: SyncPage, config: StealthConfig = None):
    """teaches synchronous playwright Page to be stealthy like a ninja!"""
    for script in (config or StealthConfig()).enabled_scripts:
        page.add_init_script(script)
def test_add_init_script_throw_without_path_and_content(page: Page) -> None:
    with pytest.raises(
            Error, match="Either path or script parameter must be specified"):
        page.add_init_script({"foo": "bar"})  # type: ignore
def test_add_init_script_work_with_a_path(page: Page, assetdir: Path) -> None:
    page.add_init_script(path=assetdir / "injectedfile.js")
    page.goto(
        "data:text/html,<script>window.result = window.injected</script>")
    assert page.evaluate("window.result") == 123
def test_add_init_script_evaluate_before_anything_else_on_the_page(
        page: Page) -> None:
    page.add_init_script("window.injected = 123")
    page.goto(
        "data:text/html,<script>window.result = window.injected</script>")
    assert page.evaluate("window.result") == 123
def test_should_work_with_trailing_comments(page: Page) -> None:
    page.add_init_script("// comment")
    page.add_init_script("window.secret = 42;")
    page.goto("data:text/html,<html></html>")
    assert page.evaluate("secret") == 42
예제 #9
0
def install_mouse_helper(page: Page) -> None:
    page.add_init_script(
        path=Path(__file__).parent.joinpath("../js/mouseHelper.js"))