我正在用 Python 为 SeleniumRC 编写测试。测试针对 Ubuntu 中的 Firefox 实例运行。我有一个使用 BasicAuth 的网络应用程序。
在我的测试类的设置中,我在我的 web 应用程序中设置了一个页面(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 也不是一种选择,因为我不能指望 BAR 测试会在另一个测试做 BasicAuth 之后出现。
这个问题看起来像SeleniumRC docs 中描述的问题,但我不明白为什么在这种情况下这种重新身份验证会出错......