簡體   English   中英

如何確定Selenium是否存在WebElement?

[英]How do I determine if a WebElement exists with Selenium?

我知道我可以使用(driver.findElements(By.xpath("Xpath Value")).size() != 0);

但是,我使用的是頁面對象模型,其目的是在單獨的類中預定義WebElements,因此我的測試類中不需要“FindElements By”。

這就是我現在擁有的

if (objPage.webElement.isEnabled()){
   System.out.println("found element");
}else{
   System.out.println("element not found");
}

但是,這會嘗試識別可能不存在的WebElement。 當它不存在時,我得到:

沒有這樣的元素“例外。

最佳做法是執行您最初建議的操作,使用.findElements()並檢查.findElements() .size != 0或者您也可以使用我的首選項.isEmpty() 您可以創建如下所示的Util函數來測試元素是否存在。

public boolean elementExists(By locator)
{
    return !driver.findElements(locator).isEmpty();
}

您還可以將其構建到頁面對象中的函數中。

您可以使用isDisplayed()來檢查元素是否可見。 它足夠簡單,可以編寫一個可以做你想要的方法。 就像是:

public boolean isElementDisplayed(WebElement element) {
    try {
         return element.isDisplayed();
        } catch(NoSuchElementException e) {
         return false;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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