Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5863)

Unified Diff: chrome/test/chromedriver/client/chromedriver.py

Issue 2230053002: [chromedriver] Added option to make element references W3C compliant. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased code with w3c flag change. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/chromedriver/client/chromedriver.py
diff --git a/chrome/test/chromedriver/client/chromedriver.py b/chrome/test/chromedriver/client/chromedriver.py
index f211bb4589a95da7dca7a453928cb6abe6b007f2..6584e0993695fac48e4f904bf06675644d0f34ce 100644
--- a/chrome/test/chromedriver/client/chromedriver.py
+++ b/chrome/test/chromedriver/client/chromedriver.py
@@ -112,6 +112,7 @@ class ChromeDriver(object):
download_dir=None, network_connection=None,
send_w3c_capability=None, send_w3c_request=None,
page_load_strategy=None):
+
samuong 2016/08/11 18:13:20 nit: no need for a new blank line
roisinmcl 2016/08/13 01:47:26 Done.
self._executor = command_executor.CommandExecutor(server_url)
options = {}
@@ -216,7 +217,10 @@ class ChromeDriver(object):
converted[key] = self._WrapValue(val)
return converted
elif isinstance(value, WebElement):
- return {'ELEMENT': value._id}
+ if (self.w3c_compliant):
+ return {'element-6066-11e4-a52e-4f735466cecf': value._id}
+ else:
+ return {'ELEMENT': value._id}
samuong 2016/08/11 18:13:20 let's create constants for the element keys, since
roisinmcl 2016/08/13 01:47:26 Done.
elif isinstance(value, list):
return list(self._WrapValue(item) for item in value)
else:
@@ -225,7 +229,12 @@ class ChromeDriver(object):
def _UnwrapValue(self, value):
"""Unwrap value from chromedriver side for client side."""
if isinstance(value, dict):
- if (len(value) == 1 and 'ELEMENT' in value
+ if (self.w3c_compliant and len(value) == 1
+ and 'element-6066-11e4-a52e-4f735466cecf' in value
+ and isinstance(
+ value['element-6066-11e4-a52e-4f735466cecf'], basestring)):
samuong 2016/08/11 18:13:20 this is a big conjunction, let's do the len(value)
roisinmcl 2016/08/13 01:47:26 Done.
+ return WebElement(self, value['element-6066-11e4-a52e-4f735466cecf'])
+ elif (len(value) == 1 and 'ELEMENT' in value
and isinstance(value['ELEMENT'], basestring)):
return WebElement(self, value['ELEMENT'])
else:

Powered by Google App Engine
This is Rietveld 408576698