[英]Selenium/Java exiting a while loop
我正在將一堆人添加到列表中,我想稍后將其從列表中刪除。 我編寫了一個方法,點擊標准的X元素來刪除用戶。 我的問題是,當我到達沒有更多X元素實例的點時,我得到一個錯誤,如下所示:
“[31morg.openqa.selenium.NoSuchElementException:無法找到元素:{”method“:”xpath“,”selector“:”// div [3] / ul / li / div / div / img“}”
但這不是我從我的While循環中出來的方式嗎? 當element = null並且因此條件為false時,while循環不應該結束並且不會發出錯誤消息嗎?
public class PrivacyList extends FluentPage {
@FindBy(xpath="//div[3]/ul/li/div/div/img")
private FluentWebElement XIcon ;
public void removeUserFromlist(){
while(XIcon!= null){
System.out.println("XICON is displayed");
XIcon.click();
System.out.println("XICON was clicked");
}
System.out.println("Users Removed");
}
}
謝謝
PageFactory ,使用@FindBy
,評估WebElement懶惰地-這意味着它是用來第一次。 在第一次之后,它不再被評估! 因此,在您的情況下,如果第一次找到它,它將永遠不會變為null
,除非您每次通過循環重新評估它。
您將不得不使用其他東西退出循環。 也許是//div[3]/ul/li
元素的計數。
評估Xpath地址而不是webElement解決了這個問題,並且是一個簡單的方法。
while(driver.findElements(By.xpath("//div[3]/ul/li/div/div/img")).size()!=0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.