Утверждайте, что WebElement не присутствует с помощью Селена WebDriver с Java

В тестах, которые я пишу, если я хочу утверждать, WebElement присутствует на странице, я могу сделать простое:

driver.findElement(By.linkText("Test Search"));

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

ОТРЕДАКТИРУЙТЕ Это - то, как я придумал свою собственную фиксацию, я задаюсь вопросом, существует ли лучший путь там все еще.

public static void assertLinkNotPresent (WebDriver driver, String text) throws Exception {
List<WebElement> bob = driver.findElements(By.linkText(text));
  if (bob.isEmpty() == false) {
    throw new Exception (text + " (Link is present)");
  }
}
40
задан Paul D. Waite 26 April 2017 в 17:02
поделиться

1 ответ

Я думаю, вы можете просто поймать org.openqa.selenium.NoSuchElementException , который будет выдан driver.findElement , если такого элемента нет:

import org.openqa.selenium.NoSuchElementException;

....

public static void assertLinkNotPresent(WebDriver driver, String text) {
    try {
        driver.findElement(By.linkText(text));
        fail("Link with text <" + text + "> is present");
    } catch (NoSuchElementException ex) { 
        /* do nothing, link is not present, assert is passed */ 
    }
}
12
ответ дан 27 November 2019 в 01:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: