Selenium 在webdriver.WebElement上的findElement之后调用findElement时出错(使用量角器,JS)
我正在使用量角器(Angular JS的webdriver包装器),虽然我可以无限期地将Selenium 在webdriver.WebElement上的findElement之后调用findElement时出错(使用量角器,JS),selenium,promise,protractor,Selenium,Promise,Protractor,我正在使用量角器(Angular JS的webdriver包装器),虽然我可以无限期地将findElement链接到单个WebElement实例,但在使用findElements后尝试链接findElement时,我会遇到一个错误 错误(堆栈跟踪在底部给出): TypeError:对象[Object]没有方法“findElement” 链接findElement: var elementPromise=browser.findElement(by.css('body')).findElement
findElement
链接到单个WebElement
实例,但在使用findElements
后尝试链接findElement
时,我会遇到一个错误
错误(堆栈跟踪在底部给出):
TypeError:对象[Object]没有方法“findElement”
链接findElement:
var elementPromise=browser.findElement(by.css('body')).findElement(by.css('ul')).findElement(by.css('li'));
elementPromise.findElement(by.css('.icon-meter'));//不会引起错误
在findElement之后使用findElement:
var arrayPromise=browser.findElement(by.css('ul')).findElements(by.css('li'));
elementPromise=arrayPromise.then(函数(elems){
返回元素[0];
});
elementPromise.findElement(by.css('.icon-meter'));//=>引起错误
带有跟踪的错误消息
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)
我在0.24版量角器上也遇到了同样的问题 作为一种解决方法,我将
findElement()
的所有调用替换为element()
,将所有findElement()的调用替换为all()
链接元素:
var-elementPromise=browser.element(by.css('body')).element(by.css('ul')).element(by.css('li'));
elementPromise.element(by.css('.icon-meter');
在findElement之后使用findElement:
var arrayPromise=browser.element(by.css('ul')).all(by.css('li'));
elementPromise=arrayPromise.then(函数(elems){
返回元素[0];
});
elementPromise.element(by.css('.icon-meter');
这篇中有关于此版本的更多详细信息。唉,答案往往是“升级”。看起来这引入了一些不向后兼容的更改。我们将不得不进行相当多的重构。