如何通过 Selenium WebDriver 和 Python 定位用户名和密码元素

Its*_*ide 5 python selenium xpath css-selectors webdriverwait

我正在尝试使用 Selenium 自动输入特定网站的用户名和密码。我无法找到要发送密钥的元素。我在下面附上了该网站的 HTML 代码。

\n\n

这是我目前正在使用的:

\n\n
username = driver.find_element_by_id(\'UserName\').getAttribute(\'value\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

此外,该网站以 .bsd 结尾,我对此并不完全熟悉,并认为它可能会导致问题。

\n\n

谢谢。

\n\n

\r\n
\r\n
username = driver.find_element_by_id(\'UserName\').getAttribute(\'value\')\n
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n

Mos*_*vin 2

只需使用WebDriverWait

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome(executable_path=r'C:\path\To\chromedriver.exe')
driver.get(url)

wait = WebDriverWait(driver, 10)

username = wait.until(EC.presence_of_element_located((By.XPATH, "//input[@id='UserName']")))

# username = driver.find_element_by_xpath("//input[@id='UserName']")
username.send_keys("the useName")

# password = driver.find_element_by_xpath("//input[@id='Password']")

password =wait.until(EC.presence_of_element_located((By.XPATH, "//input[@id='Password']")))
password.send_keys("yourPassword")
Run Code Online (Sandbox Code Playgroud)

希望这对您有帮助!