0
我用我的UI自動化PageObject/PageFactory設計模式的DOM錯誤。使用硒webdriver的2.0,JAVA,我隨機得到的錯誤:org.openqa.selenium.StaleElementReferenceException:元素不再附加到DOM,當我嘗試的邏輯是這樣的:硒2.0的webdriver:元素不再連接到使用Java
@FindBy(how = HOW.ID, using = "item")
private List<WebElement> items
private void getItemThroughName(String name) {
wait(items);
for(int i = 0; i < items.size(); i++) {
try {
Thread.sleep(0500);
} catch (InterruptedException e) { }
this.wait(items);
if(items.get(i).getText().contains(name)) {
System.out.println("Found");
break;
}
}
}
錯誤隨機發生在如果語句行,你可以看到我已經試過幾件事情要避免這種情況,再如睡覺的少量時間,或等待的元素,無論是工作時間的100%
你有任何的JavaScript您的網頁上可能會刪除從頁面項目? –
您是否嘗試過在Selenium中使用實際的顯式等待方法?這個錯誤通常是一個競爭條件問題。 – Arran
就像Arran說的:嘗試使用webdriver的等待。使用Thread.sleep()是不好的做法,應該避免。您可能永遠不知道500毫秒間隔是否足夠,從而出現隨機錯誤。嘗試隱式/顯式等待,或者甚至通過使用FluentWait類進一步 – Arek