1from tests.support.asserts import assert_error, assert_success 2from tests.support.helpers import element_rect 3 4 5def get_element_rect(session, element_id): 6 return session.transport.send( 7 "GET", 8 "session/{session_id}/element/{element_id}/rect".format( 9 session_id=session.session_id, 10 element_id=element_id, 11 ) 12 ) 13 14 15def test_no_top_browsing_context(session, closed_window): 16 original_handle, element = closed_window 17 response = get_element_rect(session, element.id) 18 assert_error(response, "no such window") 19 response = get_element_rect(session, "foo") 20 assert_error(response, "no such window") 21 22 session.window_handle = original_handle 23 response = get_element_rect(session, element.id) 24 assert_error(response, "no such element") 25 26 27def test_no_browsing_context(session, closed_frame): 28 response = get_element_rect(session, "foo") 29 assert_error(response, "no such window") 30 31 32def test_element_not_found(session): 33 result = get_element_rect(session, "foo") 34 assert_error(result, "no such element") 35 36 37def test_element_stale(session, inline): 38 session.url = inline("<input>") 39 element = session.find.css("input", all=False) 40 session.refresh() 41 42 result = get_element_rect(session, element.id) 43 assert_error(result, "stale element reference") 44 45 46def test_basic(session, inline): 47 session.url = inline("<input>") 48 element = session.find.css("input", all=False) 49 50 result = get_element_rect(session, element.id) 51 assert_success(result, element_rect(session, element)) 52