python-2.7 - 如何识别用户名和密码字段以使用 Selenium 和 Python 登录 USPS.com
问题描述
我正在尝试登录 USPS.com,我的用户名和密码正确,我正在使用以下代码。
user1="myusername"
password1="password"
url="https://reg.usps.com/login?app=MyUSPS"
browser.get(url)
username = browser.find_element_by_name('username')
username.send_keys(user1)
sleep(5)
password = browser.find_element_by_name('password')
password.send_keys(passwd1)
sleep(5)
browser.find_element_by_id('btn-submit').click()
sleep(3)
但是当我手动尝试登录站点时显示没有错误。
解决方案
根据您的问题和使用用户名和密码登录的url ,您需要诱导WebDriverWait以使所需元素可点击,您可以使用以下解决方案:https://reg.usps.com/login?app=MyUSPS
代码块:
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 options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_argument('disable-infobars') driver=webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe') driver.get("https://reg.usps.com/login?app=MyUSPS") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='form-control' and @id='username']"))).send_keys("Ankit") driver.find_element_by_xpath("//input[@class='form-control' and @id='password']").send_keys("Ankit") driver.find_element_by_xpath("//button[@class='btn btn-primary btn-lg btn-block' and @id='btn-submit']").click()
浏览器快照:
推荐阅读
- java - 如何解决捕获或最终预期的错误?
- python - 从 pandas 的混合数据类型列中仅选择整数
- python - libQt5XcbQpa.so.5:未定义符号:FT_Property_Set
- python-2.7 - Cython 扩展与 Python2 不兼容。
- android - ListView to RecyclerView conversion, problem in converting get View method
- jsf-2 - JSF and Ajax update ui:repeat not working without loading the data from database
- angularjs - 根据条件下拉默认值选择
- html - 自动将 iFrame 高度设置为内容的高度,仅 HTML5 或 CSS
- if-statement - 如何通过 c# 或 SQL 代码检查 SQL Server 表中的所有先前值
- dart - 在构建 Home(dirty, state: _HomeState#3752d): Invalid argument(s) 时引发了以下 ArgumentError