在网页中,我想通过Python自动登录传递用户名和密码。 我正在使用这个代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome()
driver.get("http://10.50.20.10/")
time.sleep(5)
username = driver.find_element(By.ID,"Username")
password = driver.find_element_by_id(By.ID,"Password")
username.send_keys("admin")
password.send_keys("pass$")
driver.find_element(By.NAME,"Login").click()
使用此代码,我看到网页已正确打开,但在尝试键入/查找用户名时代码出错:
Traceback (most recent call last):
File "C:\python\test.py", line 18, in <module>
username = driver.find_element(By.ID,"Username")
File "C:\Users\Utente\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 741, in find_element
return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
File "C:\Users\Utente\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 347, in execute
self.error_handler.check_response(response)
File "C:\Users\Utente\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="Username"]"}
(Session info: chrome=123.0.6312.122); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
Stacktrace:
GetHandleVerifier [0x00007FF7C0E47032+63090]
(No symbol) [0x00007FF7C0DB2C82]
(No symbol) [0x00007FF7C0C4EC65]
(No symbol) [0x00007FF7C0C9499D]
(No symbol) [0x00007FF7C0C94ADC]
(No symbol) [0x00007FF7C0CD5B37]
(No symbol) [0x00007FF7C0CB701F]
(No symbol) [0x00007FF7C0CD3412]
(No symbol) [0x00007FF7C0CB6D83]
(No symbol) [0x00007FF7C0C883A8]
(No symbol) [0x00007FF7C0C89441]
GetHandleVerifier [0x00007FF7C12425AD+4238317]
GetHandleVerifier [0x00007FF7C127F70D+4488525]
GetHandleVerifier [0x00007FF7C12779EF+4456495]
GetHandleVerifier [0x00007FF7C0F20576+953270]
(No symbol) [0x00007FF7C0DBE54F]
(No symbol) [0x00007FF7C0DB9224]
(No symbol) [0x00007FF7C0DB935B]
(No symbol) [0x00007FF7C0DA9B94]
BaseThreadInitThunk [0x00007FFF415A7344+20]
RtlUserThreadStart [0x00007FFF42DC26B1+33]
我不明白错误在哪里。网页是这样的:
username = driver.find_element(By.ID,"Username")
以上代码不正确。没有值为“用户名”的
ID
属性。更改以下行,它使用 XPath 定位器策略。
username = driver.find_element(By.XPATH,"//div[text()='Username']")