我正在尝试使用Selenium Grid启动新的Chrome浏览器,但最终会出现以下错误
无法创建新的远程会话。 desired capabilities = Capabilities [{browserName = chrome,version = 55.0.2,platform = WINDOWS}],required capabilities = Capabilities [{}] 构建信息:版本:'3.0.1',修订版:'1969d75',时间:'2016-10-18 09:49:13 -0700' 系统信息:主机:'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 -role node
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);
你能帮我解决一下是什么问题吗?
答案 0 :(得分:3)
行java -Dwebdriver.chrome.driver=C:\chromedriver.exe -jar selenium-server-standalone-3.0.1.jar -role node
导致普通的vanilla节点被剥离,这与PLATFORM风格无关(即,该节点未被分类为将平台识别为特征并且应该作为通用节点工作)。
然而,您的测试代码似乎正在指定平台,如下所示
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&# 39;位置。
有关使用Grid的一般概述,您可以参考my blog post
答案 1 :(得分:3)
确保您的代码能够在系统中找到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);
答案 2 :(得分:0)
我遇到了同样的情况,并且发现平台,浏览器名称和浏览器版本详细信息与网格配置不匹配。特别是因为我使用platrom作为Windows,而我本来会使用VISTA。另外,请确保您使用的是中心URL而不是节点URL。中心URL为http://hubIP:port/wd/hub。