使用selenium登录网页

问题描述 投票:0回答:1

在网页中,我想通过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]

我不明白错误在哪里。网页是这样的:

python selenium-webdriver
1个回答
0
投票
username = driver.find_element(By.ID,"Username")

以上代码不正确。没有值为“用户名”的

ID
属性。更改以下行,它使用 XPath 定位器策略。

username = driver.find_element(By.XPATH,"//div[text()='Username']")
© www.soinside.com 2019 - 2024. All rights reserved.