1import pytest 2 3from webdriver.error import NoSuchAlertException 4 5from tests.support.asserts import assert_error, assert_success 6from tests.support.inline import inline 7 8 9def get_computed_role(session, element): 10 return session.transport.send( 11 "GET", "session/{session_id}/element/{element_id}/computedrole".format( 12 session_id=session.session_id, 13 element_id=element)) 14 15 16def test_no_browsing_context(session, closed_window): 17 response = get_computed_role(session, "id") 18 assert_error(response, "no such window") 19 20 21def test_no_user_prompt(session): 22 response = get_computed_role(session, "id") 23 assert_error(response, "no such alert") 24 25 26@pytest.mark.parametrize("html,tag,expected", [ 27 ("<li role=menuitem>foo", "li", "menu"), 28 ("<input role=searchbox>", "input", "searchbox"), 29 ("<img role=presentation>", "img", "presentation")]) 30def test_computed_roles(session, html, tag, expected): 31 session.url = inline(html) 32 element = session.find.css(tag, all=False) 33 result = get_computed_role(session, element.id) 34 assert_success(result, expected) 35