3 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
元素有兩個(gè)不同的階段,如下所示:
HTML DOM中存在的元素
元素可見(jiàn),即顯示在DOM樹(shù)中
正如你所看到的NoSuchElementException異?;旧媳硎驹撛夭淮嬖诘膬?nèi)視口,并在所有可能的條件下isDisplayed()方法將返回錯(cuò)誤。因此,要驗(yàn)證這兩個(gè)條件,可以使用以下解決方案:
try{
if(driver.findElement(By.xpath("xpath_of_the_desired_element")).isDisplayed())
System.out.println("Element is present and displayed");
else
System.out.println("Element is present but not displayed");
}catch (NoSuchElementException e) {
System.out.println("Element is not present, hence not displayed as well");
}

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
if (driver.findElements(xpath_of_element).size() != 0) return true; return false;

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
在檢查元素的顯示狀態(tài)之前,應(yīng)該使用以下代碼驗(yàn)證給定的xpath是否存在至少一個(gè)或多個(gè)元素。
List<WebElement> targetElement = driver.findElements(By.xpath("xpath_your_expected_element"));
try {
if(targetElement>=1) {
if(targetElement.isDisplayed()) {
System.out.println("Element is present");
}
else {
System.out.println("Element is found, but hidden on the page");
}
else {
System.out.println("Element not found on the page");
}
}catch (NoSuchElementException e) {
System.out.println("Exception in finding the element:" + e.getMessage());
}
添加回答
舉報(bào)