selenium.common.exceptions.NoSuchElementException:消息:无此类元素:尝试使用selenium单击下一步按钮时无法找到元素

2024-04-26 07:26:21 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我尝试使用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)

有人知道如何点击那个按钮而不出错吗


Tags: nameinpybyvalueseleniumlinethomas
1条回答
网友
1楼 · 发布于 2024-04-26 07:26:21

此错误消息

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)

…意味着色度驱动程序无法定位所需元素

定位所需的元素

根据您共享的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客户端版本

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

解决方案

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

相关问题 更多 >