当我使用Windows平台时,有没有办法让我使用Protractor进行无头测试?

时间:2014-05-31 03:23:00

标签: angularjs selenium selenium-webdriver protractor

我正在使用Protractor进行测试。任何人都可以告诉我是否有办法让我将其从使用Chrome更改为无头测试。我看到一些关于这些的文章似乎假设我使用的是Linux操作系统。我正在使用Windows机器进行测试。

4 个答案:

答案 0 :(得分:9)

是的,phantomjs适用于Windows中的量角器。我也发现几乎所有在线文档都是* nix特定的,但在Windows中使用它非常容易。假设你已经使用chrome运行量角器:

添加幻影。您可以安装Windows版本或安装节点模块。我建议使用节点模块,因为如果需要设置另一个开发环境,它将简化构建设置:

npm install phantomjs --save-dev

然后更新你的protractor.conf.js指向phantomjs:

capabilities: {
  browserName: 'phantomjs',
  'phantomjs.binary.path': require('phantomjs').path
},

注意phantomjs.binary.path的值。迄今为止的所有在线文档都将该路径的值硬编码为* nix适当的值。在Windows中使用这些硬编码路径不会解析为正确的二进制文件。由于我们依赖于path属性,因此该配置适用于Windows和* nix!

答案 1 :(得分:2)

Protractor可以与PhantomJS“无头WebKit”一起使用。以下部分是量角器文档的摘录:


为了使用PhantomJS进行本地测试,您需要全局安装或相对于项目安装。有关全局安装,请参阅PhantomJS download page。对于相对安装运行:npm install --save-dev phantomjs

将phantomjs添加到驱动程序功能中,如果使用本地安装,则包含二进制文件的路径:

capabilities: {
  'browserName': 'phantomjs',

  /* 
   * Can be used to specify the phantomjs binary path.
   * This can generally be ommitted if you installed phantomjs globally.
   */
  'phantomjs.binary.path':'./node_modules/phantomjs/bin/phantomjs',

  /*
   * Command line arugments to pass to phantomjs. 
   * Can be ommitted if no arguments need to be passed. 
   * Acceptable cli arugments: https://github.com/ariya/phantomjs/wiki/API-    Reference#wiki-command-line-options
   */
  'phantomjs.cli.args':['--logfile=PATH', '--loglevel=DEBUG']
}

基本工作流程可以是在开发者机器上运行phantomjs上的测试。它允许在没有恼人的浏览器窗口的情况下运行您的e2e。其他浏览器的测试可以在持续集成服务器上运行。 当你开发时,用幻影js运行测试直到通过。然后推送,在ci服务器上触发构建并针对不同的浏览器运行测试。如果其中一个测试在特定浏览器上失败,您可以在您的开发机器上运行它。例如chrome:

protractor --browser=chrome

答案 2 :(得分:1)

你应该结帐PhantomJS(无头v8浏览器)和selenium。这篇文章有助于入门。

https://www.exratione.com/2013/12/angularjs-headless-end-to-end-testing-with-protractor-and-selenium/

答案 3 :(得分:1)

selenium服务器是基于Java的,应该可以在Windows机器上正常运行。

http://docs.seleniumhq.org/download/

这个YouTube视频解释了如何设置量角器和硒一起工作。

https://www.youtube.com/watch?v=idb6hOxlyb8