Skip to content
Snippets Groups Projects
Commit 54e90b00 authored by Andreas Tolfsen's avatar Andreas Tolfsen
Browse files

Bug 1411281 - Associate web element identifier with webdriver.Element r=jgraham

MozReview-Commit-ID: Fqw3EJnJCsD

--HG--
extra : rebase_source : c9437244567d54614e37f076642440d527ef75dd
parent 7712fbf8
No related branches found
No related tags found
No related merge requests found
...@@ -8,8 +8,6 @@ from mozlog import get_default_logger ...@@ -8,8 +8,6 @@ from mozlog import get_default_logger
logger = get_default_logger() logger = get_default_logger()
element_key = "element-6066-11e4-a52e-4f735466cecf"
def command(func): def command(func):
def inner(self, *args, **kwargs): def inner(self, *args, **kwargs):
...@@ -537,7 +535,7 @@ class Session(object): ...@@ -537,7 +535,7 @@ class Session(object):
return self._element(data) return self._element(data)
def _element(self, data): def _element(self, data):
elem_id = data[element_key] elem_id = data[Element.identifier]
assert elem_id assert elem_id
if elem_id in self._element_cache: if elem_id in self._element_cache:
return self._element_cache[elem_id] return self._element_cache[elem_id]
...@@ -604,6 +602,14 @@ class Session(object): ...@@ -604,6 +602,14 @@ class Session(object):
class Element(object): class Element(object):
"""
Representation of a web element.
A web element is an abstraction used to identify an element when
it is transported via the protocol, between remote- and local ends.
"""
identifier = "element-6066-11e4-a52e-4f735466cecf"
def __init__(self, session, id): def __init__(self, session, id):
self.session = session self.session = session
self.id = id self.id = id
...@@ -615,7 +621,7 @@ class Element(object): ...@@ -615,7 +621,7 @@ class Element(object):
return self.session.send_session_command(method, url, body) return self.session.send_session_command(method, url, body)
def json(self): def json(self):
return {element_key: self.id} return {Element.identifier: self.id}
@command @command
def find_element(self, strategy, selector): def find_element(self, strategy, selector):
......
from webdriver.client import Element, element_key from webdriver import Element, WebDriverException
from webdriver.error import WebDriverException
# WebDriver specification ID: dfn-error-response-data # WebDriver specification ID: dfn-error-response-data
errors = { errors = {
...@@ -105,10 +104,10 @@ def assert_same_element(session, a, b): ...@@ -105,10 +104,10 @@ def assert_same_element(session, a, b):
"""Verify that two element references describe the same element.""" """Verify that two element references describe the same element."""
assert isinstance(a, dict), "Actual value is not a dictionary" assert isinstance(a, dict), "Actual value is not a dictionary"
assert isinstance(b, dict), "Expected value is not a dictionary" assert isinstance(b, dict), "Expected value is not a dictionary"
assert element_key in a, "Actual value does not describe an element" assert Element.identifier in a, "Actual value does not describe an element"
assert element_key in b, "Expected value does not describe an element" assert Element.identifier in b, "Expected value does not describe an element"
if a[element_key] == b[element_key]: if a[Element.identifier] == b[Element.identifier]:
return return
message = ("Expected element references to describe the same element, " + message = ("Expected element references to describe the same element, " +
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment