【问题标题】:Protractor does not automatically start PhantomJS量角器不会自动启动 PhantomJS
【发布时间】:2014-04-03 19:19:02
【问题描述】:

我正在使用 protractor(使用 grunt-protractor-runner 运行我的 E2E Angular 测试),但我无法让 PhantomJS 自动启动。

我的量角器配置如下所示:

exports.config = {
    //seleniumAddress: "http://localhost:9515",
    specs: [
        'static_src/test/spec/*.js'
    ],


    capabilities: {
        'browserName': 'phantomjs',
        'phantomjs.binary.path':'./node_modules/phantomjs/bin/phantomjs',
        'phantomjs.cli.args':['--logfile=phantom.log', '--loglevel=DEBUG']
    }
}

我的理解是,使用该配置 protractor 将自动启动一个 PhantomJS 实例(在 phantomjs.binary.path 上找到),针对它运行测试,直接使用 WebDriver 协议进行通信(因此不需要 Selenium 服务器),然后旋转 PhantomJS 实例。

鉴于此,

  1. 我在上面描述的行为是否符合预期?
  2. 我需要在配置中添加什么来实现这一点吗?

【问题讨论】:

  • 量角器的主要目标是使用带有 webdriver 的真实浏览器进行测试。所以我不认为使用 phantomjs 是一个好方法。 Phantomjs 非常适合单元测试,但带有 selenium 的量角器非常适合在真实浏览器中进行端到端测试。有一个演示设置:github.com/angular/angular-seed
  • PhantomJS 是一个真正的浏览器。它只是有点旧(与 Chrome 13 相比),除了日志或屏幕截图,您什么都看不到。

标签: angularjs phantomjs protractor


【解决方案1】:

Protractor 总是需要一个 Selenium 独立服务器。您可以使用 webdriver-manager 启动它,并参考 protract.conf.js 中的地址,您可以指定 jar 的位置,Protractor 将为您启动它。

请参考您的配置中的jar,例如:

seleniumServerJar: 
  'node_modules/selenium-server/lib/runner/selenium-server-standalone-2.38.0.jar'

使用这种方法,你不必担心 selenium 服务器启动,但速度会慢一些。因此,如果您需要经常重新运行测试,最好将它作为独立的、独立于 Protractor 的方式启动。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
相关资源
最近更新 更多