Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.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
Javascript 跨多个浏览器并行运行量角器_Javascript_Node.js_Selenium_Selenium Webdriver_Protractor - Fatal编程技术网

Javascript 跨多个浏览器并行运行量角器

Javascript 跨多个浏览器并行运行量角器,javascript,node.js,selenium,selenium-webdriver,protractor,Javascript,Node.js,Selenium,Selenium Webdriver,Protractor,我正在尝试在三种浏览器上并行运行一个量角器测试,这三种浏览器分别是internet explorer、firefox和chrome。随着时间的推移,我可能会添加更多的浏览器,例如edge 在任何情况下,我都能够使用此配置一次运行一个实例 seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.53.1.jar'; seleniumArgs: '-Dwebdriver.chrome.dr

我正在尝试在三种浏览器上并行运行一个量角器测试,这三种浏览器分别是internet explorer、firefox和chrome。随着时间的推移,我可能会添加更多的浏览器,例如edge

在任何情况下,我都能够使用此配置一次运行一个实例

seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.53.1.jar';
seleniumArgs: '-Dwebdriver.chrome.driver=./node_modules/protractor/selenium/chromedriver_2.22.exe'
seleniumArgs: '-Dwebdriver.gecko.driver=./node_modules/protractor/selenium/geckodriver_v0.9.0.exe'
seleniumArgs: '-Dwebdriver.ie.driver=./node_modules/protractor/selenium/IEDriverServer_Win32_2.53.1.exe'

// Capabilities to be passed to the webdriver instance.
capabilities:
{

    browserName: 'firefox',

    ignoreProtectedModeSettings: true,

    'pageLoadStrategy': 'eager',

    'marionette': 'true',

 },
i、 e.我会根据我测试的浏览器的不同,在我需要的seleniumArg中进行评论,如果我不使用firefox,我会在功能范围内更改browserName&评论木偶。我有一个很好的方法通过环境变量来实现这一点,但这让我知道我是如何实现这一点的

现在我想做的是并行的,所以现在我有另一个这样的配置文件

seleniumAddress: 'http://localhost:4444/wd/hub',

multiCapabilities:
[
    {

        browserName: 'firefox',

        pageLoadingStrategy: 'eager',

        ignoreProtectedModeSettings: true,

        marionette: true,

    },
    {

        browserName: 'chrome',

        pageLoadingStrategy: 'eager',

        ignoreProtectedModeSettings: true

    },
    {

        browserName: 'internet explorer',

        IntroduceInstabilityByIgnoringProtectedModeSettings: true,

        ignoreProtectedModeSettings: true

    }

],
但每当我运行此配置时,所有浏览器实例都会抛出一个错误,表示它们找不到驱动程序可执行文件

 [internet explorer #21] WebDriverError: The path to the driver executable must be set by the webdriver.ie.driver system property; for more information
 [firefox #01] WebDriverError: The path to the driver executable must be set by the webdriver.gecko.driver system property;
 [chrome #11] WebDriverError: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information,
顺便说一下,在运行配置文件之前,我执行webdriver manager启动

所以我想问题是如何在multiCapabilities对象中知道驱动程序路径?或者,这是使用量角器(即连接到某个selenium地址)运行并行测试的建议方法吗?对于任何人提供的任何信息,我们都要提前表示感谢

如果我的config.json有什么不同的话,那么它看起来就像这样

{
"webdriverVersions":
  {
   "selenium": "2.53.1",
   "chromedriver": "2.22",
   "iedriver": "2.53.1"
   }
 }

我个人使用处理驱动程序文件路径的节点和集线器配置文件从外部启动所有这些,并使用Java打开selenium服务器,但尝试像这样格式化selenium args,并将它们全部包含在同一数组seleniumArgs:['-Dwebdriver.ie.driver=']我使用与@sonhuI相同的过程,从外部使用处理驱动程序文件路径的节点和集线器配置文件启动所有这些,并使用Java打开selenium服务器,但尝试像这样格式化selenium参数,并将它们全部包含在同一数组中seleniumArgs:['-Dwebdriver.ie.driver=']我使用与@sonhu相同的过程