我已經爲腳本訪問的每個Web元素創建了一個方法,以避免由Selenium拋出的「StaleElementReferenceError」。這是怎樣的代碼看起來:Ruby無法捕捉Selenium :: WebDriver :: Error :: StaleElementReferenceError
def reach_element(page,element)
begin
element.wait_until_present
rescue Selenium::WebDriver::Error::StaleElementReferenceError
puts '* retrying to reach element'
page.refresh
retry
end
end
看來,StaleElementReferenceError被忽略,並且測試跟上這個錯誤而失敗。 我做錯了什麼?
更正:
這個錯誤不應該出現在所有爲它由紅寶石被救出。 主要原因是watir-webdriver gem的舊版本。如果你仍然遇到這個錯誤,一個簡單的寶石更新應該做的伎倆。
好吧,刷新頁面行從來沒有達到,所以這是涵蓋。另外,我剛剛看到我的watir-webdriver gem有點老了。我會更新它並重新運行腳本。我會回來更多更新。 –
好吧,我誤解了,我不明白什麼是你的測試失敗。 :)如果它繼續失敗,請發佈堆棧跟蹤。 – titusfortner
你好。是的,我提出了除了你解決方案之外的其他問題。我看到一個問題是代碼無法捕捉到這個硒錯誤。然後我意識到,在您評論之後,StaleElementReference錯誤可能是watir-webdriver gem舊版本的原因 - 我擁有0.8.0的一個:)。所以你確實幫了我。謝啦 :) –