提问者:小点点

在python中使用selenium填写用户名和密码


如何通过以下链接自动填写用户名和密码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

chromedriver = 'C:\\chromedriver.exe'
browser = webdriver.Chrome(chromedriver)
browser.get('http://www.example.com')

之后我真的不知道:

username = Select(browser.find_element_by_name('Username'))
password = Select(browser.find_element_by_name('Password'))
username.select_by_visible_text("text")
password.select_by_visible_text("text")

共3个答案

匿名用户

文档:https://selenium-python.readthedocs.io/navigating.html

对于4.3.0(2022年6月发布)及更高版本,Selenium中删除了对find_element_by_*find_elements_by_*的调用。您需要使用新的API:

from selenium.webdriver.common.by import By

driver = webdriver.Firefox(...)  # Or Chrome(), or Ie(), or Opera()

# To catch <input type="text" id="passwd" />
password = driver.find_element(By.ID, "passwd")
# To catch <input type="text" name="passwd" />
password = driver.find_element(By.NAME, "passwd")

password.send_keys("Pa55worD")

driver.find_element(By.NAME, "submit").click()

4.2.0或以前版本API原始响应:

driver = webdriver.Firefox(...)  # Or Chrome(), or Ie(), or Opera()

username = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")

username.send_keys("YourUsername")
password.send_keys("Pa55worD")

driver.find_element_by_name("submit").click()

代码注释:Select()用于操作Select Element(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select)。

匿名用户

使用WebElement.send_keys方法模拟键入。

name中的code(UsernamePassword)与元素的实际name用户名密码)不匹配。

username = browser.find_element_by_name('username')
username.send_keys('user1')

password = browser.find_element_by_name('password')
password.send_keys('secret')

form = browser.find_element_by_id('loginForm')
form.submit()

# OR  browser.find_element_by_id('submit').click()

匿名用户

user = driver.find_element_by_name("username")
password = driver.find_element_by_name("password")
user.clear()
user.send_keys("your_user_name")
password.clear()
password.send_keys("your_password")
driver.find_element_by_name("submit").click()

注:

  • 我们使用user. lear()来清除输入字段。
  • 对于定位提交按钮,您可以使用基于页面源代码的任何其他方法。有关信息,请参阅定位元素