无法创建新的 Chrome 远程会话

Unable to create new Chrome remote session

我正在尝试使用 Selenium Grid 启动新的 Chrome 浏览器,但最终出现以下错误

无法创建新的远程会话。所需的能力 = 能力 [{browserName=chrome, version=55.0.2, platform=WINDOWS}], 所需的能力 = 能力 [{}] 构建信息:版本:'3.0.1',修订:'1969d75',时间:'2016-10-18 09:49:13 -0700' 系统信息:host: 'PL9710388', ip: '10.61.249.5', os.name: 'Windows 7', os.arch: 'amd64', os.version: ' 6.1', java.version: '1.8.0_111' 驱动程序信息:driver.version:RemoteWebDriver

下面是我启动远程浏览器的代码

java -Dwebdriver.chrome.driver=C:\chromedriver.exe -jar selenium-server-standalone-3.0.1.jar -role hub

java -Dwebdriver.chrome.driver=C:\chromedriver.exe -jar selenium-server-standalone-3.0.1.jar -角色节点

cap = DesiredCapabilities.chrome();
cap.setVersion("55.0.2");
cap.setBrowserName("chrome");
cap.setPlatform(org.openqa.selenium.Platform.WINDOWS);
browser = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),cap);

你能帮我看看哪里出了问题吗?

java -Dwebdriver.chrome.driver=C:\chromedriver.exe -jar selenium-server-standalone-3.0.1.jar -role node 导致一个普通的普通节点被分离出来,它与平台风格无关(即,该节点未被分类为将平台识别为特征,并且应该作为通用节点工作).

然而,您的测试代码似乎指定了如下平台

cap = DesiredCapabilities.chrome();
cap.setVersion("55.0.2");
cap.setBrowserName("chrome");
cap.setPlatform(org.openqa.selenium.Platform.WINDOWS);

要解决您的问题,请将您的测试代码更改为如下所示

cap = DesiredCapabilities.chrome(); // this sets the browser name. u dont need to do it again.
browser = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),cap);

完成后,您应该能够正确执行测试。

请不要忘记在启动节点之前将您的 chromedriver 二进制文件所在的位置添加到您的 PATH 变量中,这样您就不会看到与 selenium 相关的问题无法找到chromedriver 的位置。

有关使用 Grid 的一般概述,您可以参考 my blog post

确保您的代码能够在您的系统中找到 chromedriver。您可以通过编程方式设置路径,您甚至可以从下面下载并保存您的驱动程序 link

System.setProperty("webdriver.chrome.driver","/path to/chromedriver.exe");
cap = DesiredCapabilities.chrome();
cap.setPlatform(org.openqa.selenium.Platform.WINDOWS);
browser = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),cap);

我遇到了同样的情况,我发现平台、浏览器名称和浏览器版本详细信息与网格配置不匹配。具体来说,这是因为我使用 platrom 作为 windows,而我本可以使用 VISTA。还要确保您使用的是集线器 URL 而不是节点 URL.Hub URL 将是 http://hubIP:port/wd/hub

参考下面的屏幕截图以获取有关节点的正确详细信息: