wdio单击一个元素然后抛出异常,说无法找到元素

时间:2017-08-23 16:42:59

标签: javascript selenium-webdriver selenium-chromedriver webdriver-io

我有一个奇怪的问题,周一传递的测试现在失败了。我一直得到与未找到元素相关的错误:

Error: An element could not be located on the page using the given search parameters.
at element(".component-search__cta") - click.js:12:17
at click(".component-search__cta") - errorHandler.js:112:39

问题是,元素肯定是由我的页面对象中的代码定位和单击的。然后浏览器重定向到一个新页面(如预期的那样),但测试会抛出这个虚假错误。

代码简单得多:

const Page = require('../../common/page_objects/page');
const expect = require('chai').expect;

class HomePage extends Page {

  static get elements() {
    return {
    searchBox: browser.element('.component-search__text'),
    searchButton: browser.element('.component-search__cta')
  };
}

  static search(query){
    this.elements.searchBox.waitForVisible();
    this.elements.searchBox.setValue(query);
    this.elements.searchButton.click();
  }
}

  this.When(/^I submit a search query "([^"]*)"$/, function(query) {
    HomePage.search(query);
  });

如果我评论searchButton.click();我不再收到错误,但测试将失败,因为不再点击搜索按钮!

1 个答案:

答案 0 :(得分:0)

使用'xpath'或css选择器,框架将找不到元素或组件如果选择器不够具体。 所以尝试更具体的css选择器,如

span ['class =“button”']或// div / label / div

我希望这可以帮助您解决问题。