在我的测试运行时,如何防止Selenium RC窃取窗口焦点?

bak*_*aro 7 java firefox selenium focus acceptance-testing

我知道我可能只是少数人,但我必须在我的测试运行的同时使用我的机器.我总是遇到的问题是,当我使用Selenium RC运行测试用例时,浏览器窗口总是在窃取焦点.这使我无法在我退出之前的一天结束时每天多次运行我的测试.我试过Selenium Grid,但是我无法让它只监听localhost上的请求,而不是0.0.0.0(来自我的网络管理员的要求).

我已经挖掘了Selenium文档以及大量的Selenium站点,但我还没有找到明确的答案.在我的测试运行时,我可以阻止Selenium RC测试从窃取窗口焦点吗?

我正在使用Firefox 3.6.13.

dty*_*dty 10

在Linux上,您可以在不同的显示器上启动vncserver(例如:8或其他),然后让Selenium和您的Firefox实例使用该显示器.对我们工作的地方很有用.

  • 在Windows中的VM中运行linux:D (2认同)

Vla*_*hev 6

VM中运行它.具有在不同操作系统和浏览器下测试能力的额外好处.

我的理解是你无法避免在同一台机器上偷走焦点.


Kor*_*rny 5

你在运行linux吗?FirefoxProfile类的设置文档很少,加载了一个特殊的库以避免在linux上集中窃取 - 将其设置为true:

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/firefox/FirefoxProfile.html#setAlwaysLoadNoFocusLib(boolean)


bak*_*aro 2

更新

我找到了一个解决 Firefox 窗口焦点窃取问题的方法。如果您像我一样将 Selenium 作为独立服务器运行,那么您可以添加以下内容:

-browserSessionReuse
Run Code Online (Sandbox Code Playgroud)

到启动 Selenium 测试用例的 ant 任务。这也节省了大量时间,因为在运行 selenium 测试时我不必等待两个新的 Firefox 窗口打开。解决方法是,如果每个测试都是独立测试,则每次测试开始时您都必须注销站点。我通过编辑登录方法来查找注销链接来快速完成此操作。如果存在注销链接,则我的测试将单击注销链接,并等待登录页面可用,然后继续测试。