首页 > 解决方案 > 如何识别用户名和密码字段以使用 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)

但是当我手动尝试登录站点时显示没有错误。

标签: python-2.7selenium-webdriverxpathwebdriverwebdriverwait

解决方案


根据您的问题和使用用户名密码登录的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()
    
  • 浏览器快照:

usps_com


推荐阅读