selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:尝试使用硒单击“下一步"按钮时无法定位元素 [英] selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element while trying to click Next button with selenium

查看:39
本文介绍了selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:尝试使用硒单击“下一步"按钮时无法定位元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我尝试使用 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	homasPycharmProjectsBudgetMainvenvlibsite-packagesseleniumwebdriver
emotewebdriver.py", line 487, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
  File "C:Users	homasPycharmProjectsBudgetMainvenvlibsite-packagesseleniumwebdriver
emotewebdriver.py", line 955, in find_element
'value': value})['value']
  File "C:Users	homasPycharmProjectsBudgetMainvenvlibsite-packagesseleniumwebdriver
emotewebdriver.py", line 312, in execute
self.error_handler.check_response(response)
  File "C:Users	homasPycharmProjectsBudgetMainvenvlibsite-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)

任何人都知道如何点击该按钮而不会出错?

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的发行说明 明确提及以下内容:
    • 支持 Chrome v65-67

      • 我们不知道您的 Selenium Client 版本.
      • 因此 ChromeDriver v2.36Chrome 浏览器 v66.0 之间存在明显的不匹配

        So there is a clear mismatch between the ChromeDriver v2.36 and the Chrome Browser v66.0

        • Selenium 升级到当前级别版本 3.11.0.
        • ChromeDriver 升级到当前的 ChromeDriverv2.38 级别.
        • Chrome 版本保持在 Chrome v66.x 级别.(根据 ChromeDriver v2.38 发行说明)
        • 清理您的项目工作区,通过您的 IDE重建您的项目,仅使用所需的依赖项.
        • 使用 CCleaner 工具清除所有操作系统杂事在执行测试套件之后.
        • 如果您的基本Web Client 版本太旧,请通过卸载它Revo Uninstaller 并安装 Web Client 的最新 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.

        这篇关于selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:尝试使用硒单击“下一步"按钮时无法定位元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    相关文章
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆