【问题标题】:Is it possible to run browsers in headless mode in a windows box?是否可以在 Windows 框中以无头模式运行浏览器?
【发布时间】:2011-12-13 10:59:20
【问题描述】:

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

我不能使用 linux 机器,而且 HtmlUnitDriver 没有帮助,因为我们的 web 应用程序有许多 ajax 控件。

【问题讨论】:

  • HtmlUnitDriver的ajax结果与普通浏览器(FF、Chrome等)有很大的不同。如果你的网站是重ajax网站,最好不要使用HtmlUnitDriver。

标签: webdriver headless-browser


【解决方案1】:

我开始了一个小项目,使用 SimpleBrowser 为 WebDriver 提供驱动程序。你可能想看看:https://github.com/Teun/SimpleBrowser.WebDriver

不过现在还为时尚早。我希望能以贡献和测试的形式提供帮助。

【讨论】:

    【解决方案2】:

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

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

    然后您可以运行 [n] 个并行测试。另外值得注意的是,上面的代码 SimpleBrowser() 不会直接挂钩到 WebDriver 接口,您必须扩展接口以引用该 .dll

    【讨论】:

    • SimpleBrowser 很棒,我用它来进行负载测试,效果很好。但是它不支持 Javascript 或 Ajax,因此在这种情况下可能无法正常工作...
    • @Anders 啊,是的,我忘记了。另一方面,SimpleBrowser 是开源的,所以如果你感觉活泼并且真的希望它工作,你可以随时建立对 javascript 和 ajax 的支持
    • 我一直想这样做有一段时间了......但是在哪里可以找到时间? :)
    【解决方案3】:

    将测试程序作为 Windows 服务启动,浏览器将正常运行,即使在没有监视器的机器上也是如此。从技术上讲,它们在断开连接的“会话”中运行,但本质上就是您所说的“无头”。

    【讨论】:

    • 这根本不是一回事。无头意味着没有时间花在视觉上呈现网页(即使你看不到它,因为没有监视器)这消耗的资源要少得多,这反过来意味着测试运行得更快。如果您曾经尝试过并行运行多个测试(例如负载测试),您就会知道真正无头浏览器的价值。
    • 是否也可以在 Windows 上使用 selenium 网格(“selenium 节点”)作为服务并让它按需启动浏览器(特别是 IE),而无需任何登录)?如何做到这一点?
    【解决方案4】:

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

    【讨论】:

    • 谢谢确认。 HtmlUnitDriver的局限性是我们开始使用FF驱动的原因。
    • IE 和 Firefox 在无头模式下运行良好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2012-06-03
    相关资源
    最近更新 更多