mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 11:55:49 +00:00
Bug 1387470 - Use moz:webdriverClick capability for spec conforming element click. r=ato
To allow geckodriver to temporarily opt-in for using the webdriver conforming click, a new custom capability has to be created for Marionette. If not specified the legacy clickElement method will be used instead. MozReview-Commit-ID: LuyTjLJXMGL --HG-- extra : rebase_source : 8e133fb2d9767ea580468013fedff5233fd8eb93
This commit is contained in:
parent
bf3d38a14c
commit
269febe5eb
@ -673,12 +673,11 @@ GeckoDriver.prototype.listeningPromise = function() {
|
||||
* <dt><code>proxy</code> (Proxy object)
|
||||
* <dd>Defines the proxy configuration.
|
||||
*
|
||||
* <dt><code>specificationLevel</code> (number)
|
||||
* <dd>If set to 1, a WebDriver conforming <i>WebDriver::ElementClick</i>
|
||||
* implementation will be used.
|
||||
*
|
||||
* <dt><code>moz:accessibilityChecks</code> (boolean)
|
||||
* <dd>Run a11y checks when clicking elements.
|
||||
*
|
||||
* <dt><code>moz:webdriverClick</code> (boolean)
|
||||
* <dd>Use a WebDriver conforming <i>WebDriver::ElementClick</i>.
|
||||
* </dl>
|
||||
*
|
||||
* <h4>Timeouts object</h4>
|
||||
|
@ -67,14 +67,14 @@ class TestCapabilities(MarionetteTestCase):
|
||||
|
||||
self.assertIn("moz:accessibilityChecks", self.caps)
|
||||
self.assertFalse(self.caps["moz:accessibilityChecks"])
|
||||
self.assertIn("specificationLevel", self.caps)
|
||||
self.assertEqual(self.caps["specificationLevel"], 0)
|
||||
self.assertIn("moz:webdriverClick", self.caps)
|
||||
self.assertEqual(self.caps["moz:webdriverClick"], False)
|
||||
|
||||
def test_set_specification_level(self):
|
||||
def test_set_webdriver_click(self):
|
||||
self.marionette.delete_session()
|
||||
self.marionette.start_session({"specificationLevel": 2})
|
||||
self.marionette.start_session({"moz:webdriverClick": True})
|
||||
caps = self.marionette.session_capabilities
|
||||
self.assertEqual(2, caps["specificationLevel"])
|
||||
self.assertEqual(True, caps["moz:webdriverClick"])
|
||||
|
||||
def test_we_get_valid_uuid4_when_creating_a_session(self):
|
||||
self.assertNotIn("{", self.marionette.session_id,
|
||||
|
@ -132,7 +132,7 @@ class TestClick(TestLegacyClick):
|
||||
def setUp(self):
|
||||
TestLegacyClick.setUp(self)
|
||||
self.marionette.delete_session()
|
||||
self.marionette.start_session({"specificationLevel": 1})
|
||||
self.marionette.start_session({"moz:webdriverClick": True})
|
||||
|
||||
def test_click_element_obscured_by_absolute_positioned_element(self):
|
||||
self.marionette.navigate(obscured_overlay)
|
||||
|
@ -1368,7 +1368,7 @@ function clickElement(msg) {
|
||||
return interaction.clickElement(
|
||||
seenEls.get(id),
|
||||
capabilities.get("moz:accessibilityChecks"),
|
||||
capabilities.get("specificationLevel") >= 1
|
||||
capabilities.get("moz:webdriverClick")
|
||||
);
|
||||
}, commandID, pageTimeout, loadEventExpected, true);
|
||||
|
||||
|
@ -351,11 +351,11 @@ session.Capabilities = class extends Map {
|
||||
["rotatable", appinfo.name == "B2G"],
|
||||
|
||||
// proprietary
|
||||
["specificationLevel", 0],
|
||||
["moz:processID", Services.appinfo.processID],
|
||||
["moz:profile", maybeProfile()],
|
||||
["moz:accessibilityChecks", false],
|
||||
["moz:headless", Cc["@mozilla.org/gfx/info;1"].getService(Ci.nsIGfxInfo).isHeadless],
|
||||
["moz:processID", Services.appinfo.processID],
|
||||
["moz:profile", maybeProfile()],
|
||||
["moz:webdriverClick", false],
|
||||
]);
|
||||
}
|
||||
|
||||
@ -442,9 +442,9 @@ session.Capabilities = class extends Map {
|
||||
matched.set("timeouts", timeouts);
|
||||
break;
|
||||
|
||||
case "specificationLevel":
|
||||
assert.positiveInteger(v);
|
||||
matched.set("specificationLevel", v);
|
||||
case "moz:webdriverClick":
|
||||
assert.boolean(v);
|
||||
matched.set("moz:webdriverClick", v);
|
||||
break;
|
||||
|
||||
case "moz:accessibilityChecks":
|
||||
|
@ -310,10 +310,10 @@ add_test(function test_Capabilities_ctor() {
|
||||
|
||||
ok(caps.has("rotatable"));
|
||||
|
||||
equal(0, caps.get("specificationLevel"));
|
||||
equal(false, caps.get("moz:accessibilityChecks"));
|
||||
ok(caps.has("moz:processID"));
|
||||
ok(caps.has("moz:profile"));
|
||||
equal(false, caps.get("moz:accessibilityChecks"));
|
||||
equal(false, caps.get("moz:webdriverClick"));
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
@ -339,10 +339,10 @@ add_test(function test_Capabilities_toJSON() {
|
||||
|
||||
equal(caps.get("rotatable"), json.rotatable);
|
||||
|
||||
equal(caps.get("specificationLevel"), json.specificationLevel);
|
||||
equal(caps.get("moz:accessibilityChecks"), json["moz:accessibilityChecks"]);
|
||||
equal(caps.get("moz:processID"), json["moz:processID"]);
|
||||
equal(caps.get("moz:profile"), json["moz:profile"]);
|
||||
equal(caps.get("moz:accessibilityChecks"), json["moz:accessibilityChecks"]);
|
||||
equal(caps.get("moz:webdriverClick"), json["moz:webdriverClick"]);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
@ -381,11 +381,11 @@ add_test(function test_Capabilities_fromJSON() {
|
||||
caps = fromJSON({timeouts: timeoutsConfig});
|
||||
equal(123, caps.get("timeouts").implicit);
|
||||
|
||||
equal(0, caps.get("specificationLevel"));
|
||||
caps = fromJSON({specificationLevel: 123});
|
||||
equal(123, caps.get("specificationLevel"));
|
||||
Assert.throws(() => fromJSON({specificationLevel: "foo"}));
|
||||
Assert.throws(() => fromJSON({specificationLevel: -1}));
|
||||
equal(false, caps.get("moz:webdriverClick"));
|
||||
caps = fromJSON({"moz:webdriverClick": true});
|
||||
equal(true, caps.get("moz:webdriverClick"));
|
||||
Assert.throws(() => fromJSON({"moz:webdriverClick": "foo"}));
|
||||
Assert.throws(() => fromJSON({"moz:webdriverClick": 1}));
|
||||
|
||||
caps = fromJSON({"moz:accessibilityChecks": true});
|
||||
equal(true, caps.get("moz:accessibilityChecks"));
|
||||
|
Loading…
Reference in New Issue
Block a user