diff --git a/testing/marionette/driver.js b/testing/marionette/driver.js index 80f8552b6b24..a8ea4c2c1d54 100644 --- a/testing/marionette/driver.js +++ b/testing/marionette/driver.js @@ -1901,26 +1901,27 @@ GeckoDriver.prototype.multiAction = function*(cmd, resp) { * Value the client is looking for. */ GeckoDriver.prototype.findElement = function*(cmd, resp) { + let opts = { + startNode: cmd.parameters.element, + timeout: this.searchTimeout, + all: false, + }; + switch (this.context) { case Context.CHROME: - resp.body.value = yield new Promise((resolve, reject) => { - let win = this.getCurrentWindow(); - this.curBrowser.elementManager.find( - {frame: win}, - cmd.parameters, - this.searchTimeout, - false /* all */, - resolve, - reject); - }).then(null, e => { throw e; }); + let container = {frame: this.getCurrentWindow()}; + resp.body.value = yield this.curBrowser.elementManager.find( + container, + cmd.parameters.using, + cmd.parameters.value, + opts); break; case Context.CONTENT: - resp.body.value = yield this.listener.findElementContent({ - value: cmd.parameters.value, - using: cmd.parameters.using, - element: cmd.parameters.element, - searchTimeout: this.searchTimeout}); + resp.body.value = yield this.listener.findElementContent( + cmd.parameters.using, + cmd.parameters.value, + opts); break; } }; @@ -1934,26 +1935,27 @@ GeckoDriver.prototype.findElement = function*(cmd, resp) { * Value the client is looking for. */ GeckoDriver.prototype.findElements = function*(cmd, resp) { + let opts = { + startNode: cmd.parameters.element, + timeout: this.searchTimeout, + all: true, + }; + switch (this.context) { case Context.CHROME: - resp.body = yield new Promise((resolve, reject) => { - let win = this.getCurrentWindow(); - this.curBrowser.elementManager.find( - {frame: win}, - cmd.parameters, - this.searchTimeout, - true /* all */, - resolve, - reject); - }).then(null, e => { throw new NoSuchElementError(e.message); }); + let container = {frame: this.getCurrentWindow()}; + resp.body = yield this.curBrowser.elementManager.find( + container, + cmd.parameters.using, + cmd.parameters.value, + opts); break; case Context.CONTENT: - resp.body = yield this.listener.findElementsContent({ - value: cmd.parameters.value, - using: cmd.parameters.using, - element: cmd.parameters.element, - searchTimeout: this.searchTimeout}); + resp.body = yield this.listener.findElementsContent( + cmd.parameters.using, + cmd.parameters.value, + opts); break; } }; diff --git a/testing/marionette/listener.js b/testing/marionette/listener.js index be3e418db393..482933c194c8 100644 --- a/testing/marionette/listener.js +++ b/testing/marionette/listener.js @@ -1268,32 +1268,26 @@ function refresh(msg) { * Find an element in the current browsing context's document using the * given search strategy. */ -function findElementContent(opts) { - return new Promise((resolve, reject) => { - elementManager.find( - curContainer, - opts, - opts.searchTimeout, - false /* all */, - resolve, - reject); - }); +function findElementContent(strategy, selector, opts = {}) { + opts.all = false; + return elementManager.find( + curContainer, + strategy, + selector, + opts); } /** * Find elements in the current browsing context's document using the * given search strategy. */ -function findElementsContent(opts) { - return new Promise((resolve, reject) => { - elementManager.find( - curContainer, - opts, - opts.searchTimeout, - true /* all */, - resolve, - reject); - }); +function findElementsContent(strategy, selector, opts = {}) { + opts.all = true; + return elementManager.find( + curContainer, + strategy, + selector, + opts); } /**