Selenium + Python: CSS-селектор - ошибка NoSuchElement - PullRequest
0 голосов
/ 03 марта 2019

Я пишу код, который использует Selenium.Чтобы проверить функцию find_element_by_css_selector, я написал следующий код:

self.browserProfile = webdriver.ChromeOptions()
self.browserProfile.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'})
self.browser = webdriver.Chrome('Chrome_Driver/chromedriver', chrome_options=self.browserProfile)
self.email = email
self.password = password
self.browser.get('http://samplePage.html')
inputs = self.browser.find_element_by_css_selector('button')
print(inputs)

Но я получаю следующую ошибку:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"button"}
  (Session info: chrome=70.0.3538.77)
  (Driver info: chromedriver=2.25.426924 (649f9b868f6783ec9de71c123212b908bf3b232e),platform=Linux 4.15.0-45-generic x86_64)

Как мне решить эту ошибку?chromedriver и все необходимые зависимости выполнены. Я использую Python 3.6.

1 Ответ

0 голосов
/ 03 марта 2019

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

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"button"}

... означает, что ChromeDriver не смог найти нужный WebElement с помощью локатора Стратегия , которую вы использовали.

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

Поддержка Chrome v53-55

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

Поддержка Chrome v70-72

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

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

Решение

  • Обновление Селен до текущих уровней Версия 3.141.59 .
  • Обновление ChromeDriver до текущего ChromeDriver v2.46 уровень.
  • Keep Chrome версия между Chrome v71-73 уровней,( в соответствии с примечаниями к выпуску ChromeDriver v2.46 )
  • Очистить ваше Рабочее пространство проекта через IDE и Перестройте ваш проект только с необходимыми зависимостями.
  • Если ваша базовая Веб-клиент версия устарела, удалите ее через Revo Uninstaller и установите последнюю версию GA и выпущенную версию веб-клиента .
  • Выполните @Test.
  • Всегда вызывайте driver.quit() в методе tearDown(){} для закрытия& изящно уничтожить WebDriver и Веб-клиент экземпляров.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...