我正进入(状态 :
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);});
最佳答案
等待将一直循环直到循环内返回非错误答案。
目前,您的代码正在执行的操作正在返回未完成的承诺,这不是错误的,因此不会循环通过。
如果您从这个承诺中获取了东西,并返回它是否等于true,那么您应该有更多的运气。
this.Then(/^xxxxx$/, function () {
this.driver.wait(function () {
return this.driver.findElement({xpath: props.woocomerceSelectors.viewCart}).isDisplayed()
.then(function (isDisplayed) {
return isDisplayed == true;
});
}, 4000);
});
我希望这有帮助。