我有一个奇怪的问题,周一传递的测试现在失败了。我一直得到与未找到元素相关的错误:
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();
我不再收到错误,但测试将失败,因为不再点击搜索按钮!
答案 0 :(得分:0)
使用'xpath'或css选择器,框架将找不到元素或组件如果选择器不够具体。 所以尝试更具体的css选择器,如
span ['class =“button”']或// div / label / div
我希望这可以帮助您解决问题。