Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
Java 硒网格4。如何在特定节点上定位并运行测试?_Java_Selenium_E2e Testing_Selenium Grid - Fatal编程技术网

Java 硒网格4。如何在特定节点上定位并运行测试?

Java 硒网格4。如何在特定节点上定位并运行测试?,java,selenium,e2e-testing,selenium-grid,Java,Selenium,E2e Testing,Selenium Grid,我是Selenium Grid 4的新手,尝试使用节点和集线器模式设置网格并运行测试 集线器:Linux 节点A:安装了Chrome、Edge、Safari和Firefox的MacOS 节点B:安装了Chrome、Edge和Firefox的Windows10 两个节点都已成功注册到集线器,而且集线器状态也表示它已准备就绪 我想要实现的是,我希望能够选择特定的节点在我选择的浏览器上运行测试 例如,我想在节点A(MacOS机器)上运行Chrome浏览器,但不在节点B(Windows机器)上运行测

我是Selenium Grid 4的新手,尝试使用节点和集线器模式设置网格并运行测试

  • 集线器:Linux
  • 节点A:安装了Chrome、Edge、Safari和Firefox的MacOS
  • 节点B:安装了Chrome、Edge和Firefox的Windows10
两个节点都已成功注册到集线器,而且集线器状态也表示它已准备就绪

我想要实现的是,我希望能够选择特定的节点在我选择的浏览器上运行测试

例如,我想在节点A(MacOS机器)上运行Chrome浏览器,但不在节点B(Windows机器)上运行测试。为了实现这一点,我尝试将平台值设置为WebDriver对象和浏览器,如下代码所示:

     WebDriver driver;
     DesiredCapabilities capability = DesiredCapabilities.Chrome();
     capability.setPlatform(Platform.MAC);
     driver = new RemoteWebDriver(new URL("http://Hub-address:4444"), capability);
然而,我犯了一个错误

   org.openqa.selenium.SessionNotCreatedException: Unable to create session for <CreateSessionRequest with Capabilities {browserName: chrome, platform: MAC, version: }>
org.openqa.selenium.SessionNotCreatedException:无法为创建会话
如果我去掉“capability.setPlatform(Platform.MAC)”部分,它将始终在节点B(Windows计算机)上运行

我一直在网上搜索以实现这一点,但大多数文章和参考文献都是基于selenium gird 3或更早版本的,无法获得任何帮助。我也尝试过使用网格3中的nodeconfig.json文件,但没有成功


是否有办法实现此目的???

您的节点pc中存在问题。请使用正确的版本正确安装驱动程序和浏览器。我已在节点pc上仔细检查了设置(驱动程序、版本等),并且所有节点都具有相同版本的网格,浏览器和驱动程序正确安装在这些节点上,因为如果单独测试,这些节点工作正常。当前问题发生在这两个节点连接到集线器时。