0
我有一個奇怪的問題,週一傳遞的測試現在失敗。我不斷收到涉及不位於該元件相同的錯誤:wdio點擊一個元素,然後拋出異常說元素無法找到
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();
我沒有得到錯誤了,但因爲不再被點擊搜索按鈕,測試將失敗!
如果放棄顯而易見的原因(無元素,需要等待元素):可能是頁面中的多元素('。component-search__cta')? –
該定位器僅返回Chrome控制檯中的一個元素。雖然更好的定位器是'button.component-search__cta';改變它並沒有解決我的問題。我也嘗試了waitForVisible方法,但關於這個問題的奇怪的事情是我可以看到每次點擊按鈕。 – clickcell