2011-12-13 51 views
0

我正在使用Java中的webdriver编写测试。 有没有办法在windows的无框模式下运行浏览器(ff/ie)?是否有可能在windows系统中以无头模式运行浏览器?

我不能使用Linux的盒子和HtmlUnitDriver没有帮助,因为我们的Web应用程序有许多Ajax控件。

+0

HtmlUnitDriver的ajax结果与普通浏览器(FF,Chrome等)完全不同。如果您的网站是一个沉重的ajax网站,您最好不要使用HtmlUnitDriver。 – maguschen

回答

-1

HtmlUnitDriver支持ajax,并且可以在java和c#中运行(如果通过IKVM移植)。 但是,无法在无头模式下运行IE和FF。我不能告诉你我有多少次希望...

+0

Thx用于确认它。 HtmlUnitDriver的限制是我们开始使用FF驱动程序的原因。 – dmp

+0

IE和Firefox在无头模式下运行得很好。 –

0

将测试程序作为Windows服务启动,即使在没有监视器的计算机上,浏览器也能正常运行。从技术上讲,他们正在运行一个不连接的“会话”,但它本质上就是“无头”的意思。

+1

这完全不一样。无头的意思是,没有时间花费视觉渲染网页(即使看不到它,因为没有监视器),这会消耗更少的资源,这反过来意味着测试运行速度更快。如果你曾经试过并行运行多个测试(比如负载测试),你就会知道真正的无头浏览器的价值。 – Anders

+0

是否也可以在Windows上使用硒网格(“硒节点”)作为服务并让它在需要时启动浏览器(特别是IE),而无需任何登录)?如何才能做到这一点? – jfpoilpret

1

此时没有无头版本,我知道Firefox或IE。由于Firefox是开源的,因此您可以获得该浏览器的源代码,然后删除UI部分,但是我可以看到它存在一些问题。首先,您必须构建一个自定义应用程序来设置您自己的负载测试引擎。其次,您被锁定到一个网络渲染,但我认为chrome也是开源的,但它并不像Firefox或IE(使用系统.dlls与自定义可执行文件)那么好。第三,没有太多的测试,我相信会有稳定性问题和潜在的其他未预见到的问题。这就是说有一个.net无头浏览器是相当简单的,并且可能适合称为简单浏览器的负载测试。然而这取决于你想要加载的内容。如果你只是寻找带宽和服务器负载,那么你应该找到使用浏览器的多个实例。如果你实例化了不同的WebDriver,如果它可以很好地播放,我会很好奇知道如果以这种方式使用无头浏览器。即

WebDriver driver1 = new SimpleBrowser(); 
WebDriver driver2 = new SimpleBrowser(); 
. 
. 
. 
. 
. 
WebDriver driver[n] = new SimpleBrowser(); 

然后你可以运行[n]个并行测试。在上面的代码中还要注意SimpleBrowser()不直接挂接到WebDriver接口,您将不得不扩展接口以引用该.dll

+0

SimpleBrowser很棒,我用它来进行负载测试,它的功能非常好。它不支持JavaScript或Ajax,所以它可能无法在这种情况下工作... – Anders

+0

@Anders啊是的,我忘了这一点。另一方面,SimpleBrowser是开源的,所以如果你感觉活泼,真的想要它的工作,你可以始终建立在你的支持javascript和ajax – CBRRacer

+0

我一直想这样做一段时间......但在哪里找到时间? :) – Anders

相关问题