Selenium测试:使用BasicAuth重新进行身份验证会产生错误

时间:2012-05-31 15:10:22

标签: python selenium selenium-rc

我正在用Python编写SeleniumRC的测试。测试针对Ubuntu中的Firefox实例运行。我有一个使用BasicAuth的web应用程序。

在我的测试类的设置中,我在webapplication中设置了一个页面(foo.html)。

我在这个课程中有很多测试可以访问此页面并使用以下URL进行身份验证:

self.selenium.open('http://user:pass@%s:%s/foo.html' % (host, port))

我有一个测试(让我们称之为BAR)创建另一个页面(bar.html),然后打开该页面:

self.selenium.open('http://user:pass@%s:%s/bar.html' % (host, port))

这是我问题的核心:

  • 如果我只运行一次测试(BAR),登录就会起作用。
  • 如果我在执行BasicAuth之前运行另一个测试并转到另一个URL(如foo.html,这在我的情况下很常见),我会得到一个BasicAuth屏幕。

如果我更改了打开bar.html的电话并且有:

self.selenium.open('bar.html')
  • 如果我只运行这一个测试(BAR),登录失败(我得到一个BasicAuth屏幕)
  • 如果我在执行BasicAuth并转到另一个URL之前再运行另一个测试,我可以成功转到该URL。

所以问题基本上是:我不能总是做一个BasicAuth,因为BAR测试大部分时间都会失败。从来没有做过BasicAuth也不是一个选择,因为在进行另一次BasicAuth测试之后我不能指望BAR测试。

这个问题看起来好像是here in the SeleniumRC docs所描述的问题,但我无法弄清楚为什么这种重新验证会在这种情况下给出错误...

1 个答案:

答案 0 :(得分:2)

适用于Firefox。 尝试通过输入网址about:config更改以下标记并搜索以下过滤条件:

browser.safebrowsing.malware.enabled

enter image description here

您可以使用about:config service page更改默认Firefox配置文件中此标志的状态(双击标志以更改其状态)从现在开始,Firefox应该允许您使用名称和密码进行http身份验证网址。 (请注意,如果您使用的是Selenium WebDriver 2.6或更高版本,则默认情况下应禁用此标志)