如何通过以下链接自动填写用户名和密码:
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')
Run Code Online (Sandbox Code Playgroud)
之后我真的不知道:
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")
Run Code Online (Sandbox Code Playgroud)
xbe*_*llo 90
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()
Run Code Online (Sandbox Code Playgroud)
您的代码注释:
find_element_by_name('Username')
:Username
大写与任何东西都不匹配.Select()
用于操作选择元素(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select)fal*_*tru 27
使用WebElement.send_keys
方法来模拟键输入.
name
在代码(Username
,Password
)中与name
元素(username
,password
)的实际不匹配.
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()
Run Code Online (Sandbox Code Playgroud)
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()
Run Code Online (Sandbox Code Playgroud)
注意:
user.clear()
它来清除输入字段.在某些情况下,当元素不可交互、sendKeys()
不起作用并且您可能会遇到ElementNotInteractableException
.
在这种情况下,您可以选择执行设置值的 javascript,然后可以回发。
例子:
url = 'https://www.your_url.com/'
driver = Chrome(executable_path="./chromedriver")
driver.get(url)
username = 'your_username'
password = 'your_password'
#Setting the value of email input field
driver.execute_script(f'var element = document.getElementById("email"); element.value = "{username}";')
#Setting the value of password input field
driver.execute_script(f'var element = document.getElementById("password"); element.value = "{password}";')
#Submitting the form or click the login button also
driver.execute_script(f'document.getElementsByClassName("login_form")[0].submit();')
print(driver.page_source)
Run Code Online (Sandbox Code Playgroud)
参考:
https://www.quora.com/How-do-I-resolve-the-ElementNotInteractableException-in-Selenium-WebDriver
归档时间: |
|
查看次数: |
112549 次 |
最近记录: |