selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:尝试用selenium单击“下一步"按钮时无法找到元素 [英] selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element while trying to click Next button with selenium
问题描述
所以我试图用硒单击下一步,我尝试了下面的代码,但是以错误结束.
So Im trying to I click the next button using selenium, I've tried with the code below, but it ends in error.
元素
<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)
任何人都知道如何无误地单击该按钮?
Anyone have any ideas as to how to click that button without errors?
推荐答案
此错误消息...
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 无法找到所需的元素.
...implies that the ChromeDriver was unable to locate the desired element.
根据您共享的HTML单击元素,您可以使用以下定位器策略之一:
As per the HTML you have shared to click on the element you can use either of the following Locator Strategies :
-
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()
但是,主要问题是您正在使用的二进制文件之间的版本兼容性:
However your main issue is the version compatibility between the binaries you are using as follows :
- 您正在使用 chromedriver = 2.36
- chromedriver = 2.36 的发行说明明确提到以下内容:
支持 Chrome v63-65
- 您正在使用 chrome = 66.0
- ChromeDriver v2.38 明确提及以下内容:
- You are using chrome=66.0
- Release Notes of ChromeDriver v2.38 clearly mentions the following :
- 您不知道您的 Selenium Client 版本.
- Your Selenium Client version is unknown to us.
- 将硒升级到当前级别> 版本3.11.0 > .
- 将 ChromeDriver 升级到当前的 ChromeDriver v2.38 级别.
- 保持 Chrome 版本处于 Chrome v66.x 级别. (根据ChromeDriver v2.38发行说明) 通过 IDE
- 清理您的项目工作区和重建您的项目,并且仅具有必需的依赖项.
- 使用 CCleaner 工具清除之前和之后的所有操作系统杂项在执行 test Suite 之后.
- 如果您的基本 Web客户端版本太旧,请通过来卸载. Revo Uninstaller 并安装最新版本的 Web客户端 GA和发行版.
- 进行系统重启.
- 执行您的
@Test
. - Upgrade Selenium to current levels Version 3.11.0.
- Upgrade ChromeDriver to current ChromeDriver v2.38 level.
- Keep Chrome version at Chrome v66.x levels. (as per ChromeDriver v2.38 release notes)
- Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
- Use CCleaner tool to wipe off all the OS chores before and after the execution of your test Suite.
- If your base Web Client version is too old, then uninstall it through Revo Uninstaller and install a recent GA and released version of Web Client.
- Take a System Reboot.
- Execute your
@Test
.
支持 Chrome v65-67
因此 ChromeDriver v2.36 与 Chrome浏览器 v66.0 之间存在明显的不匹配
So there is a clear mismatch between the ChromeDriver v2.36 and the Chrome Browser v66.0
这篇关于selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:尝试用selenium单击“下一步"按钮时无法找到元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!