如何通过selenium网格在特定浏览器上运行测试

如何通过selenium网格在特定浏览器上运行测试,selenium,selenium-webdriver,protractor,selenium-grid,selenium-grid2,Selenium,Selenium Webdriver,Protractor,Selenium Grid,Selenium Grid2,我已经在selenium网格服务器上注册了两个在Windows7和Windows10上使用chrome浏览器的平台 我想在Windows 10上的Chrome浏览器上运行测试,但当我运行测试时,测试会在Windows 7上随机运行,在Chrome上的Windows 10上随机运行 当我们注册了多个平台时,您知道如何进行配置以在特定的浏览器和平台上运行测试吗 枢纽: 在windows 7上注册节点: java -Dwebdriver.chrome.driver=chromedriver_2.33.

我已经在selenium网格服务器上注册了两个在Windows7和Windows10上使用chrome浏览器的平台

我想在Windows 10上的Chrome浏览器上运行测试,但当我运行测试时,测试会在Windows 7上随机运行,在Chrome上的Windows 10上随机运行

当我们注册了多个平台时,您知道如何进行配置以在特定的浏览器和平台上运行测试吗

枢纽:

在windows 7上注册节点:

java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444
在windows 10上注册节点:

java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444
progrator.conf.js

exports.config = {

    specs: [
        '**/*.mytest.e2e-spec.ts'
    ],
    multiCapabilities: [
        {
            browserName: 'chrome',
            platform: 'WIN10',
        }
    ],
    seleniumAddress: 'http://localhost:4444/wd/hub',
    baseUrl: 'http://localhost:4200/',
    framework: 'jasmine',
    jasmineNodeOpts: {
        print: function () {
        }
    },
    onPrepare: function () {
        require('ts-node').register({
            project: 'e2e/tsconfig.e2e.json'
        });
    }
};

您需要调整用于注册节点的命令,如下所示:

  • 在Windows 7上注册节点:

    java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444/grid/register
    
  • 在Windows 10上注册节点:

    java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444/grid/register
    

根据您的问题和DebanjanB的回答,您有两个节点和两个集线器。您需要在同一中心注册节点。请尝试以下配置,它可能会工作

  • 使用以下命令在windows 7计算机上启动集线器

    java-jar selenium-server-standalone-3.7.1.jar-角色中心

  • 使用以下命令启动/注册windows 7上的第一个节点

    java-Dwebdriver.chrome.driver=chromedriver_2.33.exe-jar selenium-server-standalone-3.7.1.jar-role节点

  • 使用以下命令在windows 10上启动/注册第二个节点

    java-Dwebdriver.chrome.driver=chromedriver_2.33.exe-jar selenium-server-standalone-3.7.1.jar-role node-hub http://“Windows 7机器的IP地址”:4444/grid/register

  • 要验证节点是否列在集线器上,只需在windows 7计算机上打开url即可。然后,验证页面上是否列出了节点

  • 您必须从windows 7计算机上运行脚本,因为您的seleniumAddress使用的是本地主机地址(seleniumAddress:“”)。如果要在windows 10计算机或任何其他计算机上运行。在配置文件中将selenium地址更改为“http://“windows7ipaddress”:4444/wd/hub”

  • 我已经在我的机器上测试过了,它工作得很好。它将在windows 10计算机上启动chrome,因为您的multiCapabilities平台值为WIN10


    注意:在需要的地方替换ip地址值。

    我建议您执行以下操作

    • 创建一个节点配置文件,如图所示,其中对于WINDOWS7节点,您可以指定适当的平台(确保从中选择一个值)
    • 现在,通过使用命令行参数
      -nodeConfig node.json
      (有关更多详细信息,请参阅我的博客文章)指定这个新创建的nodeConfig json来启动节点
    现在,根据测试指定的平台功能,它将被路由到相应的节点。

    Selenium网格安装过程:-
  • 下载Selenium server standalone jar文件,您可以在其中 创建中心
  • 创建一个新的java项目并将其添加到构建路径
  • 在机器中使用以下命令启动集线器:-

  • java-jar selenium-server-standalone-3.9.1.jar–角色中心-端口4446

  • 在“主机浏览器”或“本地主机:端口号/网格/控制台”中打开ip地址/网格/控制台

  • 在另一台计算机中使用以下命令启动节点:

  • 在另一台笔记本电脑中下载Selenium server独立jar文件

  • 节点不必包含eclipse。但是应该安装Java

  • 转到保存selenium standalone的文件路径

  • 键入下面的命令

  • java-jar selenium-server-standalone-3.9.1.jar–角色webdriver–hub-ipaddress/grid/ 寄存器–端口5566

  • (但在这里,您的测试将失败,因为集线器中未提供chrome驱动程序或gecko驱动程序的文件路径。)

  • java–Dwebdriver.chrome.driver=“为chrome驱动程序提供路径”-jar selenium-server-standalone-3.9.1.jar–角色webdriver–hub ipaddress/grid/register–端口5566

  • 我已经完成了,之后它只是在selenium网格中为两个注册节点显示chrome浏览器。但仍然没有在Chrome的特定平台上运行测试。我在注册节点时没有问题。我只是想在win7上的Chrome浏览器上运行测试?我的答案是根据你的问题
    你知道如何配置在特定的浏览器和平台上运行测试吗
    。您的
    节点注册过程容易出错。现在要运行测试,您需要编写脚本来执行。请点击我的答案旁边的勾号将答案标记为已接受,该勾号位于VoteDown箭头下方,因此勾号变为绿色。我已经完成了所有步骤,但当我刚刚在配置安装中运行win10上的测试(chrome)在win7上运行的测试(chrom)时,我想问题在于我的配置文件,我必须知道如何指定目标平台和浏览器。当我们有多个平台和浏览器已注册到服务器时,您知道如何指定要运行的确切浏览器和平台吗?是的,您需要在配置文件中提供浏览器名称和平台,如果我们同时提供这两个平台,它将在两台机器上并行执行
    
    java -Dwebdriver.chrome.driver=chromedriver_2.33.exe -jar selenium-server-standalone-3.7.1.jar -role node -hub http://localhost:4444/grid/register