我得到了:
NoSuchElementError: no such element: Unable to locate element
我的等待功能根本没有等待。一旦到达该步骤,它就会在没有等待设定的等待时间的情况下失败。
在我的world.js我定义了我的驱动器
var driver = buildChromeDriver();
...
var World = function World() {
...
this.driver = driver;
}
这是我的步骤:
this.Then(/^xxxxx$/, function () {
this.driver.wait(function () {
return this.driver.findElement({ xpath: props.woocomerceSelectors.viewCart }).isDisplayed();
}, 4000);});
答案 0 :(得分:1)
等待将循环,直到循环内返回非假答案。
您的代码目前正在做的是返回待处理的承诺,这不是假的,因此不会循环。
如果你从这个承诺中获取东西,并返回它是否等于真,那么你应该有更多的运气。
this.Then(/^xxxxx$/, function () {
this.driver.wait(function () {
return this.driver.findElement({xpath: props.woocomerceSelectors.viewCart}).isDisplayed()
.then(function (isDisplayed) {
return isDisplayed == true;
});
}, 4000);
});
我希望这会有所帮助。