def test_get_window_rect_prompt_accept(new_session): # Step 2 _, session = new_session( {"alwaysMatch": { "unhandledPromptBehavior": "accept" }}) session.url = inline("<title>WD doc title</title>") create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send( "GET", "session/%s/window/rect" % session.session_id) assert result.status == 200 assert_dialog_handled(session, "dismiss #1") create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2") result = session.transport.send( "GET", "session/%s/window/rect" % session.session_id) assert result.status == 200 assert_dialog_handled(session, "dismiss #2") create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3") result = session.transport.send( "GET", "session/%s/window/rect" % session.session_id) assert result.status == 200 assert_dialog_handled(session, "dismiss #3")
def test_prompt_accept(new_session): _, session = new_session( {"alwaysMatch": { "unhandledPromptBehavior": "accept" }}) session.url = inline("<title>WD doc title</title>") original = session.window.rect # step 2 create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1") result = set_window_rect(session, { "x": int(original["x"]), "y": int(original["y"]) }) assert result.status == 200 assert_dialog_handled(session, "dismiss #1") create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2") result = set_window_rect(session, { "x": int(original["x"]), "y": int(original["y"]) }) assert result.status == 200 assert_dialog_handled(session, "dismiss #2") create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3") result = set_window_rect(session, { "x": int(original["x"]), "y": int(original["y"]) }) assert_success(result) assert_dialog_handled(session, "dismiss #3")
def test_title_handle_prompt_missing_value(session, create_dialog): session.url = inline("<title>WD doc title</title>") create_dialog("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #1") assert read_global(session, "accept1") == None create_dialog("confirm", text="dismiss #2", result_var="dismiss2") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #2") assert read_global(session, "dismiss2") == False create_dialog("prompt", text="dismiss #3", result_var="dismiss3") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #3") assert read_global(session, "dismiss3") == None
def test_get_window_rect_handle_prompt_missing_value(session, create_dialog): # Step 2 session.url = inline("<title>WD doc title</title>") create_dialog("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send("GET", "session/%s/window/rect" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #1") create_dialog("confirm", text="dismiss #2", result_var="dismiss2") result = session.transport.send("GET", "session/%s/window/rect" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #2") create_dialog("prompt", text="dismiss #3", result_var="dismiss3") result = session.transport.send("GET", "session/%s/window/rect" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #3")
def test_handle_prompt_missing_value(session, create_dialog): original = session.window.rect # step 2 session.url = inline("<title>WD doc title</title>") create_dialog("alert", text="dismiss #1", result_var="dismiss1") result = set_window_rect(session, { "x": int(original["x"]), "y": int(original["y"]) }) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #1") create_dialog("confirm", text="dismiss #2", result_var="dismiss2") result = set_window_rect(session, { "x": int(original["x"]), "y": int(original["y"]) }) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #2") create_dialog("prompt", text="dismiss #3", result_var="dismiss3") result = set_window_rect(session, { "x": int(original["x"]), "y": int(original["y"]) }) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #3")
def test_get_window_rect_handle_prompt_missing_value(session, create_dialog): # Step 2 session.url = inline("<title>WD doc title</title>") create_dialog("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send( "GET", "session/%s/window/rect" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #1") create_dialog("confirm", text="dismiss #2", result_var="dismiss2") result = session.transport.send( "GET", "session/%s/window/rect" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #2") create_dialog("prompt", text="dismiss #3", result_var="dismiss3") result = session.transport.send( "GET", "session/%s/window/rect" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #3")
def test_title_without_element(session): session.url = inline("<h2>Hello</h2>") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, read_global(session, "document.title"))
def test_handle_prompt_dismiss(new_session): _, session = new_session( {"alwaysMatch": { "unhandledPromptBehavior": "dismiss" }}) session.url = inline("<body><p>Hello, World!</p></body>") create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "dismiss #1") assert session.execute_script("return dismiss1;") == None create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "dismiss #2") assert read_global(session, "dismiss2") == None create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "dismiss #3") assert read_global(session, "dismiss3") == None
def test_title_with_duplicate_element(session): session.url = inline("<title>First</title><title>Second</title>") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, read_global(session, "document.title"))
def test_handle_prompt_dismiss(new_session): _, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "dismiss"}}) session.url = inline("<body><p>Hello, World!</p></body>") create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "dismiss #1") assert session.execute_script("return dismiss1;") == None create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "dismiss #2") assert read_global(session, "dismiss2") == None create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "dismiss #3") assert read_global(session, "dismiss3") == None
def test_handle_prompt_accept(new_session): _, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "accept"}}) session.url = inline("<body><p>Hello, World!</p></body>") create_dialog(session)("alert", text="accept #1", result_var="accept1") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "accept #1") assert read_global(session, "accept1") == None create_dialog(session)("confirm", text="accept #2", result_var="accept2") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "accept #2") assert read_global(session, "accept2"), True create_dialog(session)("prompt", text="accept #3", result_var="accept3") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "accept #3") assert read_global(session, "accept3") == ""
def test_sucess_without_body(session): session.url = inline("<body></body>") session.execute_script("document.body.remove();") result = session.transport.send("GET", "session/%s/element/active"% session.session_id) assert_result_is_active_element(session, result)
def test_title_handle_prompt_accept(new_session): _, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "accept"}}) session.url = inline("<title>WD doc title</title>") create_dialog(session)("alert", text="accept #1", result_var="accept1") expected_title = read_global(session, "document.title") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, expected_title) assert_dialog_handled(session, "accept #1") assert read_global(session, "accept1") == None expected_title = read_global(session, "document.title") create_dialog(session)("confirm", text="accept #2", result_var="accept2") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, expected_title) assert_dialog_handled(session, "accept #2") assert read_global(session, "accept2"), True expected_title = read_global(session, "document.title") create_dialog(session)("prompt", text="accept #3", result_var="accept3") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, expected_title) assert_dialog_handled(session, "accept #3") assert read_global(session, "accept3") == ""
def test_success_explicit_focus(session): session.url = inline(""" <body> <h1>Heading</h1> <input /> <iframe></iframe> </body>""") session.execute_script("document.body.getElementsByTagName('h1')[0].focus();") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) session.execute_script("document.body.getElementsByTagName('input')[0].focus();") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) session.execute_script("document.body.getElementsByTagName('iframe')[0].focus();") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) session.execute_script("document.body.getElementsByTagName('iframe')[0].focus();") session.execute_script("document.body.getElementsByTagName('iframe')[0].remove();") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) session.execute_script("document.body.appendChild(document.createElement('textarea'));") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result)
def test_handle_prompt_missing_value(session, create_dialog): session.url = inline("<body><p>Hello, World!</p></body>") create_dialog("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #1") assert session.execute_script("return accept1;") == None create_dialog("confirm", text="dismiss #2", result_var="dismiss2") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #2") assert session.execute_script("return dismiss2;") == False create_dialog("prompt", text="dismiss #3", result_var="dismiss3") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #3") assert session.execute_script("return dismiss3;") == None
def test_title_handle_prompt_accept(new_session): _, session = new_session( {"alwaysMatch": { "unhandledPromptBehavior": "accept" }}) session.url = inline("<title>WD doc title</title>") create_dialog(session)("alert", text="accept #1", result_var="accept1") expected_title = read_global(session, "document.title") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, expected_title) assert_dialog_handled(session, "accept #1") assert read_global(session, "accept1") == None expected_title = read_global(session, "document.title") create_dialog(session)("confirm", text="accept #2", result_var="accept2") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, expected_title) assert_dialog_handled(session, "accept #2") assert read_global(session, "accept2"), True expected_title = read_global(session, "document.title") create_dialog(session)("prompt", text="accept #3", result_var="accept3") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, expected_title) assert_dialog_handled(session, "accept #3") assert read_global(session, "accept3") == ""
def test_handle_prompt_missing_value(session, create_dialog): session.url = inline("<body><p>Hello, World!</p></body>") create_dialog("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #1") assert session.execute_script("return accept1;") == None create_dialog("confirm", text="dismiss #2", result_var="dismiss2") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #2") assert session.execute_script("return dismiss2;") == False create_dialog("prompt", text="dismiss #3", result_var="dismiss3") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #3") assert session.execute_script("return dismiss3;") == None
def test_handle_prompt_accept(new_session): _, session = new_session( {"alwaysMatch": { "unhandledPromptBehavior": "accept" }}) session.url = inline("<body><p>Hello, World!</p></body>") create_dialog(session)("alert", text="accept #1", result_var="accept1") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "accept #1") assert read_global(session, "accept1") == None create_dialog(session)("confirm", text="accept #2", result_var="accept2") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "accept #2") assert read_global(session, "accept2"), True create_dialog(session)("prompt", text="accept #3", result_var="accept3") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) assert_dialog_handled(session, "accept #3") assert read_global(session, "accept3") == ""
def test_sucess_without_body(session): session.url = inline("<body></body>") session.execute_script("document.body.remove();") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result)
def test_title_strip_and_collapse(session): document = "<title> a b\tc\nd\t \n e\t\n </title><h2>Hello</h2>" session.url = inline(document) result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, read_global(session, "document.title"))
def test_title_after_modification(session): session.url = inline("<title>Initial</title><h2>Hello</h2>") session.execute_script("document.title = 'updated'") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, read_global(session, "document.title"))
def test_title_from_frame(session, create_frame): session.url = inline("<title>Parent</title>parent") session.switch_frame(create_frame()) session.switch_frame(create_frame()) result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, read_global(session, "document.title"))
def test_sucess_input_non_interactable(session): session.url = inline(""" <body> <h1>Heading</h1> <input /> <input style="opacity: 0;" autofocus /> <p>Another element</p> </body>""") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result)
def test_sucess_input_non_interactable(session): session.url = inline(""" <body> <h1>Heading</h1> <input /> <input style="opacity: 0;" autofocus /> <p>Another element</p> </body>""") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result)
def test_success_iframe_content(session): session.url = inline("<body></body>") session.execute_script(""" var iframe = document.createElement('iframe'); document.body.appendChild(iframe); var input = iframe.contentDocument.createElement('input'); iframe.contentDocument.body.appendChild(input); input.focus();""") result = session.transport.send("GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result)
def test_success_iframe_content(session): session.url = inline("<body></body>") session.execute_script(""" var iframe = document.createElement('iframe'); document.body.appendChild(iframe); var input = iframe.contentDocument.createElement('input'); iframe.contentDocument.body.appendChild(input); input.focus();""") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result)
def test_success_explicit_focus(session): session.url = inline(""" <body> <h1>Heading</h1> <input /> <iframe></iframe> </body>""") session.execute_script( "document.body.getElementsByTagName('h1')[0].focus();") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) session.execute_script( "document.body.getElementsByTagName('input')[0].focus();") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) session.execute_script( "document.body.getElementsByTagName('iframe')[0].focus();") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) session.execute_script( "document.body.getElementsByTagName('iframe')[0].focus();") session.execute_script( "document.body.getElementsByTagName('iframe')[0].remove();") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result) session.execute_script( "document.body.appendChild(document.createElement('textarea'));") result = session.transport.send( "GET", "session/%s/element/active" % session.session_id) assert_result_is_active_element(session, result)
def test_set_window_rect_handle_prompt_missing_value(session, create_dialog): # Step 2 get_response = session.transport.send( "GET", "session/%s/window/rect" % session.session_id) original = get_response.body["value"] session.url = inline("<title>WD doc title</title>") create_dialog("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send( "POST", "session/%s/window/rect" % session.session_id, { "x": int(original["y"]), "y": int(original["y"]) }) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #1") create_dialog("confirm", text="dismiss #2", result_var="dismiss2") result = session.transport.send( "POST", "session/%s/window/rect" % session.session_id, { "x": int(original["y"]), "y": int(original["y"]) }) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #2") create_dialog("prompt", text="dismiss #3", result_var="dismiss3") result = session.transport.send( "POST", "session/%s/window/rect" % session.session_id, { "x": int(original["y"]), "y": int(original["y"]) }) assert_error(result, "unexpected alert open") assert_dialog_handled(session, "dismiss #3")
def test_get_window_rect_prompt_accept(new_session): # Step 2 _, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "accept"}}) session.url = inline("<title>WD doc title</title>") create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send("GET", "session/%s/window/rect" % session.session_id) assert result.status == 200 assert_dialog_handled(session, "dismiss #1") create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2") result = session.transport.send("GET", "session/%s/window/rect" % session.session_id) assert result.status == 200 assert_dialog_handled(session, "dismiss #2") create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3") result = session.transport.send("GET", "session/%s/window/rect" % session.session_id) assert result.status == 200 assert_dialog_handled(session, "dismiss #3")
def test_title_from_top_context(session): session.url = inline("<title>Foobar</title><h2>Hello</h2>") result = session.transport.send("GET", "session/%s/title" % session.session_id) assert_success(result, read_global(session, "document.title"))
import json import pytest import types from support.inline import inline from support.asserts import assert_error, assert_success alert_doc = inline("<script>window.alert()</script>") frame_doc = inline("<p>frame") one_frame_doc = inline("<iframe src='%s'></iframe>" % frame_doc) two_frames_doc = inline("<iframe src='%s'></iframe>" % one_frame_doc) # TODO(ato): 7.1 Get def test_get_current_url_no_browsing_context(session, create_window): # 7.2 step 1 session.window_handle = create_window() session.close() result = session.transport.send("GET", "session/%s/url" % session.session_id) assert_error(result, "no such window") def test_get_current_url_alert_prompt(session): # 7.2 step 2 session.url = alert_doc result = session.transport.send("GET",
import json import pytest import types from support.inline import inline from support.asserts import assert_error, assert_success alert_doc = inline("<script>window.alert()</script>") frame_doc = inline("<p>frame") one_frame_doc = inline("<iframe src='%s'></iframe>" % frame_doc) two_frames_doc = inline("<iframe src='%s'></iframe>" % one_frame_doc) # TODO(ato): 7.1 Get def test_get_current_url_no_browsing_context(session, create_window): # 7.2 step 1 session.window_handle = create_window() session.close() result = session.transport.send("GET", "session/%s/url" % session.session_id) assert_error(result, "no such window") def test_get_current_url_alert_prompt(session): # 7.2 step 2 session.url = alert_doc result = session.transport.send("GET", "session/%s/url" % session.session_id)
from support.inline import inline from support.asserts import assert_error, assert_success alert_doc = inline("<script>window.alert()</script>") # 10.7.3 Maximize Window def test_maximize_no_browsing_context(session, create_window): # Step 1 session.window_handle = create_window() session.close() result = session.transport.send( "POST", "session/%s/window/maximize" % session.session_id) assert_error(result, "no such window") def test_maximize_rect_alert_prompt(session): # Step 2 session.url = alert_doc result = session.transport.send( "POST", "session/%s/window/maximize" % session.session_id) assert_error(result, "unexpected alert open") def test_maximize_payload(session): # step 5 result = session.transport.send( "POST", "session/%s/window/maximize" % session.session_id)
from support.asserts import assert_error, assert_dialog_handled, assert_success from support.fixtures import create_dialog from support.inline import inline alert_doc = inline("<script>window.alert()</script>") # 10.7.1 Get Window Rect def test_get_window_rect_no_browsing_context(session, create_window): # Step 1 session.window_handle = create_window() session.close() result = session.transport.send("GET", "session/%s/window/rect" % session.session_id) assert_error(result, "no such window") def test_get_window_rect_prompt_accept(new_session): # Step 2 _, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "accept"}}) session.url = inline("<title>WD doc title</title>") create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1") result = session.transport.send("GET", "session/%s/window/rect" % session.session_id) assert result.status == 200 assert_dialog_handled(session, "dismiss #1") create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2")