Obsługa wyjątków - boolean

0

Witam,
Mam takie pytanie:
Czy można jakoś zastąpić konstrukcję try... catch np za pomocą konstrukcji while z booleanem?
Mój kod wygląda następująco:

   try {
				   powierzchnia = driver.findElement(By.className("detail-feature__value")).getText();  
				   }catch (org.openqa.selenium.NoSuchElementException e){
				   powierzchnia = driver.findElement(By.xpath("/html/body/div[1]/div[2]/main/div[3]/div/section[2]/div[2]/div/ul/li[11]/span[2]")).getText();
				   }

Chodzi mi o obsługę drugiego wyjątku org.openqa.selenium.NoSuchElementException e.
Dzięki za podpowiedź

0

To zależy od API danej biblioteki. Niektóre udostępniają metody do wcześniejszego sprawdzenia dostępności zwracające boolean, których można użyć w instrukcji if, inne nie. Selenium WebDriver należy do tej drugiej kategorii, jednak możesz sobie poradzić w nieco inny sposób. Oprócz findElement(), jest też metoda findElements() zwracająca listę elementów (w szczególności pustą). Wtedy możesz zrobić:

List<WebElement> result = driver.findElement(By.className("dsfsdf"));
if (!result.isEmpty()) {
    WebElement element = result.get(0);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1