[英]Can't find element selenium python
<input placeholder="Enter Password" class="password-input" type="password">
上面是我嘗試使用以下代碼發送密鑰的元素。
from selenium import webdriver
from selenium.common.exceptions import StaleElementReferenceException, TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('C:\chromedriver_win32\chromedriver.exe')
driver.get('https://howsecureismypassword.net/')
elem = driver.find_element_by_name('password-input')
elem.send_keys('password')
html = driver.page_source
這是我得到的錯誤,無法弄清原因。
RESTART: C:\Users\bakat\AppData\Local\Programs\Python\Python35-32\Science
Experiment\Science_Experiment_Password_Tester.py
Traceback (most recent call last):
File "C:\Users\bakat\AppData\Local\Programs\Python\Python35-32\Science Experiment\Science_Experiment_Password_Tester.py", line 18, in <module>
elem = driver.find_element_by_name('password-input')
File "C:\Users\bakat\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 365, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File "C:\Users\bakat\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 752, in find_element
'value': value})['value']
File "C:\Users\bakat\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "C:\Users\bakat\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"password-input"}
(Session info: chrome=57.0.2987.133)
(Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 10.0.14393 x86_64)
嘗試使用find_element_by_class_name
而不是find_element_by_name
。
查看您網站的HTML,所需元素的類名稱是password-input
,而不是名稱。
from selenium import webdriver
from selenium.common.exceptions import StaleElementReferenceException, TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('C:\chromedriver_win32\chromedriver.exe')
driver.get('https://howsecureismypassword.net/')
elem = driver.find_element_by_class_name('password-input')
elem.send_keys('password')
html = driver.page_source
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.