Ich verwende Winkelmesser (Angular JS 's Webdriver Wrapper), und obwohl ich findElement
unbegrenzt von einer einzigen WebElement
Instanz verketten kann, erhalte ich einen Fehler wenn Ich versuche, findElement
nach der Verwendung findElements
(Plural) zu verketten.Fehler beim Aufruf von findElements nach findElements auf webdriver.WebElement (mit Winkelmesser, JS)
Fehler(Stapelüberwachung unten angegeben):
TypeError: Object [object Object] has no method 'findElement'
Chaining findElement:
var elementPromise = browser.findElement(by.css('body')).findElement(by.css('ul')).findElement(by.css('li'));
elementPromise.findElement(by.css('.icon-meter')); // does not raise error
Verwendung nach findElement findElements:
var arrayPromise = browser.findElement(by.css('ul')).findElements(by.css('li'));
elementPromise = arrayPromise.then(function(elems) {
return elems[0];
});
elementPromise.findElement(by.css('.icon-meter')); // => raises error
Fehlermeldung mit Spuren
TypeError: Object [object Object] has no method 'findElement'
at repl:1:16
at /home/markham/src/dataraptor-rails4/spec/node_modules/elementexplorer-convenience.js:83:19
at webdriver.promise.ControlFlow.runInNewFrame_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1598:20)
at webdriver.promise.ControlFlow.runEventLoop_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1463:8)
at wrapper [as _onTimeout] (timers.js:252:14)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
Ach, zu oft ist die Antwort 'Aktualisierung'. Sieht so aus, als würde dies einige nicht rückwärtskompatible Änderungen einleiten. Ich muss ziemlich umstrukturieren. – JellicleCat