selenium.common.exceptions.NoSuchElementException: Сообщение: нет такого элемента: невозможно найти элемент при попытке нажать кнопку «Далее» с селеном - PullRequest
0 голосов
/ 13 мая 2018

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

Элемент

<input type="submit" name="submitNext" value="Next">

Мой код

driver.find_element_by_name("submitNext").click()

Но затем выдает эти ошибки

Traceback (most recent call last):
  File "C:/Users/thomas/PycharmProjects/test/mainapp/main.py", line 194, in 
<module>
    visa()
  File "C:/Users/thomas/PycharmProjects/test/mainapp/main.py", line 174, in visa
driver.find_element_by_name("submitNext").click()
  File "C:\Users\thomas\PycharmProjects\BudgetMain\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 487, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
  File "C:\Users\thomas\PycharmProjects\BudgetMain\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 955, in find_element
'value': value})['value']
  File "C:\Users\thomas\PycharmProjects\BudgetMain\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
self.error_handler.check_response(response)
  File "C:\Users\thomas\PycharmProjects\BudgetMain\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"submitNext"}
  (Session info: chrome=66.0.3359.170)
  (Driver info: chromedriver=2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91),platform=Windows NT 10.0.16299 x86_64)

У кого-нибудь есть идеи относительно того, как нажать эту кнопку без ошибок?

1 Ответ

0 голосов
/ 13 мая 2018

Это сообщение об ошибке ...

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"submitNext"}
  (Session info: chrome=66.0.3359.170)
  (Driver info: chromedriver=2.36.540470)

... означает, что ChromeDriver не смог найти нужный элемент.

Поиск нужного элемента

В соответствии с HTML, которым вы поделились, чтобы щелкнуть по элементу, вы можете использовать любую из следующих Стратегий локатора :

  • css_selector:

    driver.find_element_by_css_selector("input[name='submitNext'][value='Next']").click()
    
  • xpath:

    driver.find_element_by_xpath("//input[@name='submitNext' and @value='Next']").click()
    

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

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

Поддержка Chrome v63-65

  • Вы используете chrome = 66.0
  • Примечания к выпуску ChromeDriver v2.38 четко упоминает следующее:

Поддержка Chromev65-67

  • Ваша Selenium Client версия нам неизвестна.

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

Solution

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