簡體   English   中英

Selenium / Java退出while循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM