NoSuchElementException с методом isDisplayed() в блоке try catch в Selenium

Я хочу проверить отрицательное состояние. выше логический элемент не отображается, но я должен напечатать истину и ложь, но он не показывает исключение такого элемента, пожалуйста, помогите.

try{

    boolean k= driver.findElement(By.xpath("xpath_of_element")).isDisplayed();
    if(!k==true)
    {
             System.out.println("true12"); 
    }

}catch (NoSuchElementException e) {
    System.out.println(e);
}

2 ответа

Есть два отличных этапа элемента следующим образом:

  • Элемент присутствует в HTML DOM
  • Элемент видимый, т.е. отображается в дереве DOM

Поскольку вы видите NoSuchElementException, который по существу указывает, что элемент отсутствует в области просмотра и во всех возможных условиях isDisplayed()метод вернет false. Таким образом, для проверки обоих условий вы можете использовать следующее решение:

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");
}
        if (driver.findElements(xpath_of_element).size() != 0) return true;
        return false;

Вы должны использовать приведенный ниже код, который будет проверять, присутствует ли хотя бы один или несколько элементов для данного xpath, перед проверкой состояния отображения элемента.

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());
        }
Другие вопросы по тегам