我試圖運行我的測試使用Selenium
並剛剛遇到問題。我有我爲Chrome
瀏覽器編寫的測試。現在我一直試圖在Firefox
瀏覽器中運行相同的測試,但失敗了。Firefox不會等待頁面加載Webdriverio
我已經開始調查問題,發現Firefox
不會等到頁面完全加載。 Chrome完美運作。
我在Docker容器中運行Selenium
。
這裏是我的腳本
storeSearch(info) {
let that = this;
return new Promise(function (resolve, reject) {
browserClient.init()
.url("http://somewhere.com")
.selectByVisibleText("#store","Tech")
// Redirect to a new page
.setValue("input[name='search']", info.searchCriteria)
.selectByValue(".featured", 'MacBook')
.click("button[name='info']")
.element('.popup')
.then(function (element) {
if (element.state === 'success') {
}
});
});
}
它不會嘗試甚至從選擇.selectByVisibleText("#store","Tech")
選擇存儲類型,只是拋出一個異常。
「(輸入[名=「搜索」] \「,
我嘗試添加的元件不能在頁面上使用給定的搜索 參數\)」位於」 timeouts
但它不工作,並給我一個錯誤。
browserClient.init()
.url("http://somewhere.com")
.timeouts('pageLoad', 100000)
.selectByVisibleText("#store","Tech")
引發以下錯誤。
「未知等待類型:頁面加載\ nBuild信息:版本: '3.4.0',修訂: '未知',時間: '未知' \ n系統信息:主機: 'ef7581676ebb',IP: 「 172.17.0.3',os.name:'Linux',os.arch:'amd64',os.version: '4.9.27-moby',java.version:'1.8.0_121'\ n驅動程序信息:driver.version : 未知
我一直在試圖解決這個問題了兩天,但至今沒有運氣
可能有人幫助,也許你有秒。 ome的想法是什麼會導致問題?
謝謝。
UPDATE
.url("http://somewhere.com")
.pause(2000)
.selectByVisibleText("#store","Tech")
如果我把一些pause
陳述它的工作原理,但是這是真的不好,不是我想從這個框架的期望。 Chrome完美運作。它會一直等到加載欄完全加載,然後才執行操作。
問題是在geckodriver我猜測,我測試了它在Python中的相同流,Java和行爲是完全一樣的。
[@bxfvgekd(HTTPS:/ /stackoverflow.com/users/4671628/bxfvgekd)你有點殺死與'更新'的問題。這不是一個** geckodriver問題**,更不用說'.pause()'不是最佳實踐。請考慮重新閱讀我的答案並相應地更新/接受答案。乾杯! – iamdanchiv
請考慮根據我的回答/以上評論結束問題。再一次,這不是一個GheckoDriver問題,它是**最佳實踐**來顯式等待** WebElement。乾杯! – iamdanchiv