Вы ловите NoSuchElementException
, но явное ожидание выдает TimeoutException
, если ничего не найдено. Чтобы получить то, что у вас работает, вы должны изменить свой код, сделав следующее:
try {
WebElement site_width_full_width = wait.until(
ExpectedConditions.visibilityOfElementLocated(
By.cssSelector("label[for=site_width-full_width]")
));
site_width_full_width.click();
System.out.println("FullWidth Label Found!");
} catch (NoSuchElementException | TimeoutException e) {
System.out.println("FullWidth Label not found!");
System.out.println(e);
}
Однако использование Try / Catch для потока выполнения обычно является анти-паттерном кода. Вам было бы гораздо лучше сделать что-то вроде этого:
List<WebElement> site_width_full_width =
driver.findElements(By.cssSelector("label[for=site_width-full_width]"));
if (site_width_full_width.size() > 0) {
System.out.println("FullWidth Label Found!");
site_width_full_width.get(0).click();
} else {
System.out.println("FullWidth Label not found!");
}