gpt4 book ai didi

python - 使用 Selenium 单击 "selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element"按钮时出现 'Next'

转载 作者:行者123 更新时间:2023-11-30 22:15:23 24 4
gpt4 key购买 nike

我尝试使用 Selenium 单击 Next 按钮,我已尝试使用下面的代码,但最终出现错误。

元素

<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)

如何点击该按钮而不出现错误?

最佳答案

此错误消息...

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 的发行说明明确提到以下内容:

Supports Chrome v63-65

Supports Chrome v65-67

  • 我们不知道您的Selenium 客户端版本。

因此,ChromeDriver v2.36Chrome 浏览器 v66.0 之间存在明显不匹配

解决方案

  • Selenium升级到当前级别 Version 3.11.0 .
  • ChromeDriver升级到当前的ChromeDriver v2.38级别。
  • Chrome 版本保持在 Chrome v66.x 级别。 (as per ChromeDriver v2.38 release notes)
  • 通过IDE清理您的项目工作区,并仅使用所需的依赖项重建项目。
  • 使用CCleaner工具可以清除执行测试套件之前和之后的所有操作系统杂务。
  • 如果您的基本网络客户端版本太旧,请通过 Revo Uninstaller 卸载它并安装最新的 GA 和已发布版本的Web 客户端
  • 重新启动系统
  • 执行您的@Test

关于python - 使用 Selenium 单击 "selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element"按钮时出现 'Next',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50315587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com