如何将HttpAuthentication传递给selenium webdriver

Nav*_*ava 0 python selenium basic-authentication selenium-webdriver

在我的python项目中,登录过程由HttpBasicAuth处理程序处理.得到响应后,我应该通过selenium加载主页面.

它应该如何完成?

它有baseurl.当基本URL由python-selenium加载时,弹出框会询问用于身份验证的用户名和密码.然后它进入主页面.

以下是两个步骤:

  • 第1步:登录(使用HttpBasicAuth处理程序)

我使用HttpBasicAuth处理程序的原因是,当我打开我的URL时,它会打开一个用于登录的弹出窗口.因为,我们不知道由Selenium处理的弹出模式对话窗口的控制,我们切换到HttpAuthentication.

(这是我需要建议的部分.)

  • 第2步:获得响应后,处理selenium中的剩余步骤.

在这个中间部分,我使用来自HttpBasicAuth处理程序的响应进行身份验证,以便Selenium可以继续测试中的其他步骤.

如何在Selenium中对站点进行身份验证?我是否必须使用HttpBasicAuthentication Response为Selenium webdriver创建一个cookie,以便跳过登录框?

Uku*_*kit 5

这是一个可以通过向HTTP响应添加标头来轻松解决的问题,遗憾的是Selenium2不支持此功能.

您可以通过在URL中嵌入用户名和密码来尝试使用它:

browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://myusername:mypassword@www.yourpage.com") # Load page
Run Code Online (Sandbox Code Playgroud)

请注意,这不适用于IE(由于安全问题),但您可以通过稍微修改注册表来使其工作.

根据你的评论,我真的不明白你的问题.如果您按照我的指定执行第一个请求,浏览器将自动存储一个特殊的Authorization:标头,其中包含密码和用户名连接以及base64编码.在关闭浏览器之前,所有其他请求现在都将进行身份验证.

这种方法与Selenium 1或Selenium 2几乎没有关系,但具体浏览器支持的是什么.IE是我所知道的唯一一个限制它的浏览器.