Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Protractor 如何在量角器中通过命令提示符传递浏览器名称_Protractor - Fatal编程技术网

Protractor 如何在量角器中通过命令提示符传递浏览器名称

Protractor 如何在量角器中通过命令提示符传递浏览器名称,protractor,Protractor,我使用的量角器是黄瓜架,带有量角器5.2.2。黄瓜3.2.1。我必须通过命令提示符传递浏览器名称,而不是在配置文件中硬编码。案例1:仅在cmd行中指定浏览器名称,以使脚本在该浏览器上运行 // conf.js capabilities: { browserName: 'chrome' } progrator conf.js-browser=firefox//将在firefox上运行 量角器conf.js//在chrome上运行 案例2:在启动量角器运行程序之前,是否希望对某些代码

我使用的量角器是黄瓜架,带有量角器5.2.2。黄瓜3.2.1。我必须通过命令提示符传递浏览器名称,而不是在配置文件中硬编码。

案例1:仅在cmd行中指定浏览器名称,以使脚本在该浏览器上运行

 // conf.js
 capabilities: {
    browserName: 'chrome'
 }
progrator conf.js-browser=firefox//将在firefox上运行 量角器conf.js//在chrome上运行

案例2:在启动量角器运行程序之前,是否希望对某些代码逻辑使用浏览器名称

您可以使用process.argv获取命令中的所有内容,并提取传入的浏览器名称

// cmd.params.js 
// parse cmd parameters

var params = {};
process.argv.slice(3).forEach(function (arg) {
    let flag = arg.split('=')[0];
    let value = arg.split('=')[1];
    let name = flag.replace('--', '');

    params[name] = value;
});

module.exports = params;
dragrator conf.js-browser=firefox//将仅在firefox上运行


progrator conf.js-browser=firefox,chrome//将在firefox上运行,chrome

您可以使用browser.browserName获取名称。我可以通过命令提示符传递浏览器名称,并在chrome和firefox中运行,但不能在internet explorer中运行。我使用了命令量角器cumber.conf.js-capabilities.browserName=internetexplorer,错误为SessionNotCreatedError:无法从org.openqa.selenium.remote创建会话。NewSessionPayload@5ca001a9在我的配置文件中,我提供了以下功能:{'browserName':}这是您问题的解决方案吗?为什么您必须通过命令行传递脚本,而不是从配置中获取脚本实际上,我的要求是用户应该能够在单个浏览器或多个浏览器中运行脚本,而无需在配置文件中硬编码浏览器名称。它不是硬编码的。它由框架自动发现。您只需读取值。如果你在chrome中运行它,它会返回chrome;如果你在ie中运行它,它会返回ie。它很有用。当我使用了dragrator conf.js-browser=firefox,dragrator conf.js-browser=internetexplorer时,我可以在单个浏览器中运行。通过在cmd行中指定浏览器名称,我们可以在两个或三个浏览器中同时运行脚本吗?我使用了dragrator conf.js-browser=firefox,chrome。但它不起作用。我在我的项目文件夹中创建了cmd.params.js文件,并在配置文件中进行了更改,但当我运行脚本时,我收到一条错误消息:加载配置文件cucumber.conf.js失败,引用错误:moduel未定义cmd.params.js中的类型错误,应该是module.exportsI已尝试,但错误仍然存在。我们如何解决此问题。提前感谢。如果可以将cucumber.conf.js和cmd.params.js上载到您的github帐户,我将查看并修改它,然后提交回。
// conf.js
var params = require('./cmd.params.js');

var browser = params.browser;
// now you can use the variable: browser anywhere in conf.js    

var multiCapabilities = browser.split(',').map(function(browserName){
    return {
        browserName: browserName.trim()
    };
})

exports.config = {
    multiCapabilities: multiCapabilities
    ....
};