Попробуйте исключить утверждение, чтобы проверить наличие кнопки ошибки, сгенерировать исключение, если элемент найден - PullRequest
0 голосов
/ 13 июня 2019

Я написал скрипт Python / Selenium для автоматизации рабочего процесса на финансовом сайте.

Один из тестов включает проверку наличия текста ошибки на одном из экранов.

Прилагается блок Try / Except, который проверяет наличие кнопки (id = errorShowMore).Если кнопка отображается, я хочу, чтобы скрипт завершился ошибкой, и я хочу сделать снимок экрана страницы.

Я написал код, который идентифицирует кнопку ошибки.Затем я помещаю этот код в блок Try / Except.

Однако у меня есть вопросы о том, как улучшить эту структуру обработки ошибок (если ее можно улучшить).

try:
    showMoreButton = driver.find_element_by_id("errorShowMore")
    assert showMoreButton.click() except AssertionError:
    screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png"
    saved_screenshot_location = str(screenshot_directory / screenshot_name)
    driver.get_screenshot_as_file(saved_screenshot_location)
    raise

Когда язапустить код и ошибка существует, я получаю «AssertionError» (ожидается), снимок экрана сделан (ожидается) и сценарий останавливается (ожидается).

Однако я чувствую, что что-то упустил.

Есть ли лучший способ проверить наличие кнопки ошибки?

1 Ответ

0 голосов
/ 13 июня 2019

Вы можете просто использовать find_elements_by_id и получить счет.

errEleCount = len(driver.find_elements_by_id("errorShowMore"))
if errEleCount>0:
  # implement the logic here.
...