使用 Selenium 单击“下一步”按钮时出现“selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素”
- 2024-11-25 08:50:00
- admin 原创
- 239
问题描述:
我正在尝试Next
使用 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 homasPycharmProjectsBudgetMainenvlibsite-packagesseleniumwebdriver
emotewebdriver.py", line 487, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File "C:Users homasPycharmProjectsBudgetMainenvlibsite-packagesseleniumwebdriver
emotewebdriver.py", line 955, in find_element
'value': value})['value']
File "C:Users homasPycharmProjectsBudgetMainenvlibsite-packagesseleniumwebdriver
emotewebdriver.py", line 312, in execute
self.error_handler.check_response(response)
File "C:Users homasPycharmProjectsBudgetMainenvlibsite-packagesseleniumwebdriver
emoteerrorhandler.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)
我怎样才能单击该按钮而不出现错误?
解决方案 1:
此错误信息...
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的发行说明明确提到以下内容:
支持Chrome v63-65
您正在使用chrome=66.0
ChromeDriver v2.38的发行说明明确提到以下内容:
支持Chrome v65-67
我们不知道您的Selenium 客户端版本。
因此ChromeDriver v2.36与Chrome 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
。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD