我正进入(状态 :

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


我希望这有帮助。

07-24 09:50
查看更多