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_label(session, element): 10 return session.transport.send( 11 "GET", "session/{session_id}/element/{element_id}/computedlabel".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_label(session) 18 assert_error(response, "no such window") 19 20 21def test_no_user_prompt(session): 22 response = get_computed_label(session) 23 assert_error(response, "no such alert") 24 25 26@pytest.mark.parametrize("html,tag,label", [ 27 ("<button>ok</button>", "button", "ok"), 28 ("<button aria-labelledby=\"one two\"></button><div id=one>ok</div><div id=two>go</div>", "button", "ok go"), 29 ("<button aria-label=foo>bar</button>", "button", "foo"), 30 ("<label><input> foo</label>", "input", "foo"), 31 ("<label for=b>foo<label><input id=b>", "input", "foo")]) 32def test_get_computed_label(session, html, tag, label): 33 session.url = inline("{0}".format(tag)) 34 element = session.find.css(tag, all=False) 35 result = get_computed_label(session, element.id) 36 assert_success(result, label) 37