Какие exceptions может бросить Selenium? Что они означают и как их обрабатывать?
NoSuchElementException
:Бросается, когда метод
findElement
не может найти элемент на странице с использованием указанного селектора (например,By.id("exampleId")
).
try { WebElement element = driver.findElement(By.id("exampleId")); } catch (NoSuchElementException e) { // Обработка случая, когда элемент не найден System.out.println("Элемент не найден."); }
TimeoutException
:Выбрасывается, когда время ожидания истекло. Например, при использовании
WebDriverWait
и методаuntil
для ожидания определенного условия.
try { WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("exampleId"))); } catch (TimeoutException e) { // Обработка случая, когда элемент не появился в течение указанного времени System.out.println("Элемент не появился в течение 10 секунд."); }
StaleElementReferenceException
:Возникает, когда ссылка на элемент устарела, например, после перезагрузки страницы или изменения DOM.
try { WebElement element = driver.findElement(By.id("exampleId")); // Сделать что-то с элементом element.click(); } catch (StaleElementReferenceException e) { // Обработка случая, когда ссылка на элемент устарела System.out.println("Ссылка на элемент устарела."); }
ElementNotInteractableException
:Возникает, когда попытка взаимодействовать с элементом не удается, например, при попытке ввода текста в неактивное поле ввода.
try { WebElement inputField = driver.findElement(By.id("exampleInput")); inputField.sendKeys("Hello, Selenium!"); } catch (ElementNotInteractableException e) { // Обработка случая, когда элемент не может быть взаимодействован System.out.println("Невозможно взаимодействовать с элементом."); }
WebDriverException
:Общее исключение, которое может быть выброшено в различных ситуациях. В некоторых случаях это может быть непредвиденная ошибка.
try { // Код, который может вызвать WebDriverException } catch (WebDriverException e) { // Обработка WebDriverException System.out.println("Возникла ошибка WebDriver."); }
Last updated
Was this helpful?