Обработка исключений в Selenium - PullRequest
1 голос
/ 14 июля 2020

Это хорошая практика - использовать Try and Catch при тестировании на селен? Я использую команду try / catch в своих тестовых примерах, чтобы исправить некоторые исключения, которые появляются при тестировании, это лучший подход?

Ответы [ 3 ]

1 голос
/ 14 июля 2020

Исключения

Исключения могут возникать при выполнении Selenium связанных тестовой среды из-за ошибок кодирования, ошибок из-за неправильного ввода или других непредвиденные вещи. Следовательно, всегда лучше всего заключать подозрительный блок кода в блокировку blobk.

попытаться поймать

Подробности:

  • попробовать : строки кода в блоке try используются для заключения кода это может вызвать исключение. Если в конкретном операторе блока try возникает исключение, остальная часть кода блока не будет выполняться. Поэтому рекомендуется не хранить код в блоке try, который не вызовет исключения.

  • catch : строки кода в блоке catch используется для обработки исключения путем объявления типа исключения в параметре. Объявленное исключение может быть либо исключением родительского класса (например, Exception), либо сгенерированным типом исключения. Хороший подход - объявить сгенерированный тип исключения.

Примечание : блок catch должен использоваться только после блока try. Вы можете использовать несколько блоков catch с одним блоком try.

Пример

Демонстрация использования try-catch:

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");
}
0 голосов
/ 14 июля 2020

Это нормальная практика. Один из примеров такой практики вы можете найти в org.openqa.selenium.support.ui.FluentWait самого Selenium, где функция until(..) перехватывает все исключения, а затем повторно выбрасывает те, которые не упомянуты, с помощью методов ignoring(..) или ignoreAll(..).

Однако лучше не использовать его часто, поскольку использование исключений для разработки вашего управления потоком считается анти-шаблоном .

0 голосов
/ 14 июля 2020

Да, попробовать поймать всегда полезно. Но иногда это зависит от программирования и логи c. Но в целом Try / Catch очень важен для парсинга данных с использованием Selenium.

...