Несколько исключений не обрабатываются

В настоящее время я использую несколько исключений в цикле for. Тем не менее, они по-прежнему выдают ошибки исключения, и я не уверен, почему они не обрабатываются.

Вот мой код:

for x in range (15):
    actions.click_and_hold(element1).move_to_element(element2).release().perform()
    try:
        WebDriverWait(driver, 5).until(
            EC.visibility_of_element_located((elementLocator))
            )
        return True
    except (StaleElementReferenceException, TimeoutException):
        break

Вот эта ошибка:

StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
  (Session info: headless chrome=67.0.3396.30)
  (Driver info: chromedriver=2.36.540469 (1881fd7f8641508feb5166b7cae561d87723cfa8),platform=Mac OS X 10.13.4 x86_64)

1 ответ

Я не вижу никакой проблемы в вашем кодовом блоке как таковой, но ваша основная проблема заключается в совместимости версий между двоичными файлами, которые вы используете, следующим образом:

  • Вы используете chromedriver=2,36
  • В примечаниях к выпуску chromedriver=2.36 четко упоминается следующее:

Поддерживает Chrome v63-65

Поддерживает Chrome v65-67

Таким образом, существует явное несоответствие между версией ChromeDriver (v2.36) и версией Chrome Browser (v67.0)

Решение

  • Обновите ChromeDriver до текущего уровня ChromeDriver v2.38.
  • Держите версию Chrome на уровне Chrome v67.x. ( согласно примечаниям к выпуску ChromeDriver v2.38)
  • Очистите рабочее пространство проекта через IDE и перестройте проект только с необходимыми зависимостями.
  • Используйте инструмент CCleaner, чтобы стереть с себя все обязанности ОС до и после выполнения тестового пакета.
  • Если ваша базовая версия веб-клиента слишком старая, удалите ее с помощью Revo Uninstaller и установите последнюю версию GA и выпущенную версию веб-клиента.
  • Возьмите перезагрузку системы.
  • Выполните свой @Test,