繁体   English   中英

selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:尝试使用硒单击“下一步”按钮时无法定位元素

[英]selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element while trying to click Next button with selenium

所以我尝试使用 selenium 单击下一个按钮,我尝试使用下面的代码,但它以错误结束。

元素

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

但是,您的主要问题是您使用的二进制文件之间的版本兼容性如下:

支持Chrome v63-65

支持Chrome v65-67

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

所以ChromeDriver v2.36Chrome Browser v66.0之间存在明显的不匹配

解决方案

  • Selenium升级到当前级别3.11.0 版
  • 升级ChromeDriver当前ChromeDriver v2.38水平。
  • Chrome版本保持在Chrome v66.x级别。 根据 ChromeDriver v2.38 发行说明
  • 通过IDE清理项目工作区并仅使用所需的依赖项重建项目。
  • 在执行测试套件之前和之后,使用CCleaner工具清除所有操作系统杂务。
  • 如果您的基本Web Client版本太旧,请通过Revo Uninstaller卸载它并安装最新的 GA 和发布版本的Web Client
  • 进行系统重启
  • 执行你的@Test

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM