【问题标题】:Is there any way to pass multiple browser via protractor cli有没有办法通过量角器cli传递多个浏览器
【发布时间】:2015-03-30 03:13:56
【问题描述】:

只是想知道是否可以将 cli args 指定为量角器,例如

--multiCapabilities.0.browserName chrome --multiCapabilities.1.browserName firefox

这样它会覆盖 protractor conf 文件中定义的 multiCapabilities。

【问题讨论】:

    标签: protractor


    【解决方案1】:

    艾萨克·莱曼第一个建议的具体例子:

    命令行界面:

    protractor ... --params.browsers="chrome,firefox"
    

    conf.js:

    var capabilities = {
      chrome: {
        browserName: 'chrome'
      },
    
      firefox: {
        browserName: 'firefox'
      }
    };
    
    ...
    
    getMultiCapabilities: function() {
      var browsers = this.params.browsers.split(',');
    
      // Using lodash to select the keys in `capabilities` corresponding 
      // to the browsers param.
      return _( capabilities )
        .pick(browsers)
        .values()
        .value();
    },
    

    【讨论】:

    • 我不敢相信你没有得到任何赞成,这是一个很好的解决方案,适用于当前的量角器限制。值得一提的是,人们需要从命令行“npm install --save-dev lodash”将 lodash 添加到他们的 node_modules 和“var _ = require('lodash');”导入库。
    • 很棒的解决方案!谢谢。
    【解决方案2】:

    您可以尝试一些方法。

    How can I use command line arguments in Angularjs Protractor? 解释了如何传入“params”变量,如果您完全是专业人士,您可以稍后在配置文件中使用 multiCapabilities 部分引用该变量(可能使用辅助函数或 if 语句,这样您就不需要了) t 必须从命令行传入一个复杂的对象)。不容易做到,但有可能。

    https://sourcegraph.com/github.com/teerapap/grunt-protractor-runner(参见“选项”部分)是一个实用程序,可让您从命令行毫无问题地传递这些内容。它是开源的,如果它不能完全满足您的需求,似乎很容易修改。

    假设您只需要几个不同的选项,最简单的选择就是使用两个不同的配置文件“protractor.chrome.conf.js”和“protractor.firefox.conf.js”并运行其中一个你现在需要。

    【讨论】:

      【解决方案3】:

      这是一个合理的要求。我在这里为此创建了一个 PR:https://github.com/angular/protractor/pull/1770。现在,您可以将此 PR 修补到本地量角器以使用此功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-09
        • 2013-10-29
        • 1970-01-01
        • 1970-01-01
        • 2011-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多