Bug 1250102 - Employ new element location API; r=automatedtester

MozReview-Commit-ID: K831MhwAT6X

--HG--
extra : rebase_source : 6f3edeb2b42d8168887738ce4863cc8e15bf5d05
This commit is contained in:
Andreas Tolfsen 2016-02-23 15:19:21 +00:00
Родитель a1b600fd96
Коммит 46bb47edff
2 изменённых файлов: 46 добавлений и 50 удалений

Просмотреть файл

@ -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;
}
};

Просмотреть файл

@ -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(
function findElementContent(strategy, selector, opts = {}) {
opts.all = false;
return elementManager.find(
curContainer,
opts,
opts.searchTimeout,
false /* all */,
resolve,
reject);
});
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(
function findElementsContent(strategy, selector, opts = {}) {
opts.all = true;
return elementManager.find(
curContainer,
opts,
opts.searchTimeout,
true /* all */,
resolve,
reject);
});
strategy,
selector,
opts);
}
/**