【问题标题】:Selenium + Python: CSS Selector -- NoSuchElement errorSelenium + Python:CSS 选择器——NoSuchElement 错误
【发布时间】:2019-03-03 11:58:16
【问题描述】:

我正在编写一个使用 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。

【问题讨论】:

  • 可以显示页面吗?
  • 定位器好像错了,分享一下这个元素的页面源代码。
  • 请分享您的 HTML。
  • 那个按钮可能添加晚了。

标签: python python-3.x selenium webdriver selenium-chromedriver


【解决方案1】:

此错误消息...

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

...暗示 ChromeDriver 无法通过您使用的Locator Strategy 找到所需的WebElement

相关的 HTML 将帮助我们以更好的方式分析您的问题。但是,您的主要问题是您使用的二进制文件版本之间的不兼容性,如下所示:

  • 您正在使用 chromedriver=2.25
  • chromedriver=2.25 的发行说明明确提及以下内容:

支持 Chrome v53-55

  • 您正在使用 chrome=70.0
  • ChromeDriver v2.45 的发行说明明确提及以下内容:

支持 Chrome v70-72

  • 您的 Selenium 客户端 版本对我们未知

所以 ChromeDriver v2.25Chrome 浏览器 v70.0

之间存在明显的不匹配

解决方案

  • 保持Selenium升级到当前水平Version 3.141.59
  • ChromeDriver 升级到当前的ChromeDriver v2.46 级别。
  • Chrome 版本保持在 Chrome v71-73 级别之间。 (as per ChromeDriver v2.46 release notes)
  • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
  • 如果您的基础 Web Client 版本太旧,请通过 Revo Uninstaller 卸载它并安装最新的 GA 和发布版本的 Web Client
  • 执行您的@Test
  • 始终在 tearDown(){} 方法中调用 driver.quit() 以优雅地关闭和销毁 WebDriverWeb Client 实例。

【讨论】:

  • 我不太确定为什么有人对你投了反对票。您解释了问题和解决方案的多个方面,供 OP 自己解决。
  • 此解决方案有效。我将chromedriver更新到最新版本,现在可以正常运行了,谢谢先生
  • 好消息!!!我确信 版本不兼容 的实际问题,因为 @NoSplitSherlock 的支持让我们相信我们正朝着解决您的问题的正确方向前进。
猜你喜欢
  • 1970-01-01
  • 2017-08-23
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-11
相关资源
最近更新 更多