Edw*_*win 10 python selenium selenium-webdriver
我遇到安全网址问题:
打开URL会创建一个"需要身份验证"警告框,其中包含用户名和密码字段.
我是Selenium Webdriver和Python的新手.我不熟悉处理警报,目前我手动输入凭据,直到我弄明白这一点.我已经尝试将我的用户名/密码添加到URL中.这对我不起作用.
有人可以指点我在警告框中输入密钥到用户名和密码字段的方向吗?
在这种身份验证的情况下,您需要在访问页面时将用户名和密码传递给服务器以避免身份验证窗口(这是 selenium 无法实现的)
假设您尝试访问的网址是:http : //example.com
您必须使用以下凭据访问此网址:
driver.get('http://username:password@example.com')
Run Code Online (Sandbox Code Playgroud)
username您的用户名和password密码在哪里。
小智 5
您可以尝试使用“ 密钥”在警报中切换吗?
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get('http://www.url.com/')
wait(driver, 5).until(EC.alert_is_present())
alert = driver.switch_to_alert()
alert.send_keys('username')
alert.send_keys(Keys.TAB)
alert.send_keys('password')
alert.accept()
Run Code Online (Sandbox Code Playgroud)
感谢您的所有回复。不幸的是,这些解决方案都不适合我。我怀疑这可能与每次 webdriver 打开 Firefox 时创建新配置文件有关。
我的解决方法:安装 32 位 IE 驱动程序(http://selenium-release.storage.googleapis.com/index.html?path=2.44/)后,我将驱动程序从 Firefox 更改为 IE。这解决了我的问题,不再创建警报框,并允许我继续进行单元测试。