簡體   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