Python3 Selenium在弹出对话框中填写用户名和密码

时间:2017-01-24 03:55:44

标签: python selenium python-3.5

我想使用Python3-Selenium访问网站。但是,为了访问我的目标网站,我必须通过身份验证页面。

例如,我要访问的网址目标网站是https://target_website.com。鉴于身份验证页面的网址为https://example.example.com/ab/cd/ef

以下是该页面的示例:

enter image description here

正如您从上图中看到的那样,我必须:

  1. 填写用户名
  2. 填写密码
  3. 点击登录
  4. 尝试了以下代码,但没有用。

    browser = webdriver.Chrome('path_to_exe')
    wait = WebDriverWait(browser, 600)
    
    browser.get('https://target_website.com')
    wait.until(EC.alert_is_present())
    browser.get('https://<username>:<password>@example.example.com/ab/cd/ef')
    

    尝试了以下代码,仍然无效。

    browser = webdriver.Chrome('path_to_exe')
    wait = WebDriverWait(browser, 600)
    
    browser.get('https://target_website.com')
    wait.until(EC.alert_is_present())
    browser.get('https://<username>:<password>@example.example.com')
    

    最后,我尝试了以下代码,但它再次无效。

    browser = webdriver.Chrome('path_to_exe')
    wait = WebDriverWait(browser, 600)
    
    browser.get('https://target_website.com')
    wait.until(EC.alert_is_present())
    alert = browser.switch_to_alert()
    alert.authenticate('<username>', '<password>')
    alert.accept()
    

1 个答案:

答案 0 :(得分:2)

尝试使用以下内容:

from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox('path_to_exe')
wait = WebDriverWait(browser, 10)
browser.get('https://target_website.com')
alert = wait.until(EC.alert_is_present())
alert.send_keys('username' + Keys.TAB + 'password')
alert.accept()

请注意,此方法仅适用于Firefox