NoSuchElementException с методом isDisplayed () в блоке try catch в Selenium - PullRequest
0 голосов
/ 23 июня 2018

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

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);
}

Ответы [ 3 ]

0 голосов
/ 02 июля 2018

Вы должны использовать приведенный ниже код, который будет проверять, присутствует ли хотя бы один или несколько элементов для данного 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());
        }
0 голосов
/ 30 марта 2019
        if (driver.findElements(xpath_of_element).size() != 0) return true;
        return false;
0 голосов
/ 25 июня 2018

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

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

Как вы видите 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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...