[英]How to continue execution after “NoSuchElementException” in Selenium (Java)?
我正在嘗試從此頁面創建WebElement的ArrayList:
如果顯示了所有元素,則可以將它們添加到ArrayList中。
ArrayList<WebElement> TodoArray = new ArrayList<WebElement>();
TodoArray.add(todo1);
如果從網頁中刪除其中一個元素(非代碼),則在運行測試用例時會出現此錯誤:
org.openqa.selenium.NoSuchElementException: Unable to locate element: *[name='todo[9]']
有什么方法可以繞過此錯誤並強制Java跳過缺少的元素,但繼續添加顯示的元素?
我的代碼非常簡單。 我正在使用JUnit運行我的測試用例。 使用@FindBy批注正確定義了元素。
@FindBy(name="todo[1]")
WebElement todo1;
我嘗試使用Try / Catch並使用NoSuchElementException包圍變量,但不確定如何設置其格式。 在這種情況下可以使用“ continue”關鍵字嗎?
希望我提供了足夠的信息。 任何幫助,將不勝感激。 謝謝!
Java Try / Catch的確切語法適合您:
try {
@FindBy(name="todo[1]")
WebElement todo1;
}
catch(NoSuchElementException e) {
System.out.println("could not find element todo1");
}
...
//rest of your code
這有幫助嗎?
或者,您可以通過以下方式使用流暢的等待:
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(10, SECONDS)
.pollingEvery(1, SECONDS)
.ignoring(NoSuchElementException.class);
我認為這是一種更優雅的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.