Skip to content

Commit 16e2edd

Browse files
Add WebDriver tests for computed label/role
This adds tests for the new Get Computed Role and Get Computed Label endpoints described in w3c/webdriver#1444
1 parent 14401ce commit 16e2edd

File tree

4 files changed

+70
-0
lines changed

4 files changed

+70
-0
lines changed

webdriver/tests/get_computed_label/__init__.py

Whitespace-only changes.
+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import pytest
2+
from six import text_type
3+
4+
from webdriver.error import NoSuchAlertException
5+
6+
from tests.support.asserts import assert_error, assert_success
7+
from tests.support.inline import inline
8+
9+
10+
def get_computed_label(session, element):
11+
return session.transport.send(
12+
"GET", "session/{session_id}/element/{element_id}/computedlabel".format(
13+
session_id=session.session_id,
14+
element_id=element))
15+
16+
17+
def test_no_browsing_context(session, closed_window):
18+
response = get_computed_label(session)
19+
assert_error(response, "no such window")
20+
21+
22+
def test_no_user_prompt(session):
23+
response = get_computed_label(session)
24+
assert_error(response, "no such alert")
25+
26+
27+
@pytest.mark.parametrize("tag,label", [
28+
("<button>ok</button>", "ok"),
29+
("<button aria-labelledby='one two'></button><div id='one'>ok</div><div id='two'>go</div>", "ok go"),
30+
("<button aria-label='foo'>bar</button>", "foo")]
31+
def test_get_computed_label(session, tag, label):
32+
session.url=inline("{0}".format(tag))
33+
element=session.find.css(tag, all=False)
34+
result=get_computed_label(session, element.id)
35+
assert_success(result, label)

webdriver/tests/get_computed_role/__init__.py

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

0 commit comments

Comments
 (0)