Ubuntu 16.10:Selenium 网格客户端未连接到 Selenium 网格服务器
Ubuntu 16.10: Selenium grid client not connecting to Selenium grid server
我已经像这样启动了集线器和节点:
#!/bin/bash
java -jar /opt/selenium/selenium-server-standalone-3.7.1.jar -role hub &
java -jar /opt/selenium/selenium-server-standalone-3.7.1.jar -role webdriver -hub http://192.168.40.40:4444/grid/register -nodeConfig /opt/selenium/defaultNodeConfig.json -browser "browserName=chrome,platform=LINUX" &
这是我的 /opt/selenium/defaultNodeConfig.json:
{
"capabilities": [
{
"browserName": "firefox",
"platform": "LINUX",
"maxInstances": 5,
"cleanSession": true,
"webdriver.gecko.driver": "/opt/selenium/geckodriver",
"webdriver.firefox.bin": "/usr/bin/firefox"
},
{
"browserName": "chrome",
"platform": "LINUX",
"maxInstances": 5,
"webdriver.chrome.driver": "/opt/selenium/chromedriver"
}
]
}
当我像这样启动 Selenium 客户端连接到集线器时:
#!/bin/bash
java -cp ".:/opt/selenium/client-combined-3.5.3-nodeps.jar:/opt/selenium/selenium-server-standalone-3.7.1.jar" de.auticon.selenium_server.Grid_SetUp
其中 Grid_SetUp.java 为:
package de.auticon.selenium_server;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import java.net.MalformedURLException;
import java.net.URL;
public class Grid_SetUp {
public static WebDriver driver;
public static void main(String[] args) throws MalformedURLException, InterruptedException{
System.setProperty("webdriver.chrome.driver","/opt/selenium/chromedriver");
String URL = "http://www.google.com";
String Node = "http://192.168.40.40:4444/wd/hub";
DesiredCapabilities cap = DesiredCapabilities.chrome();
driver = new RemoteWebDriver(new URL(Node), cap);
driver.navigate().to(URL);
Thread.sleep(5000);
driver.quit();
}
}
我收到错误:
leder@leder-VirtualBox:~/Source/SeleniumCheese/bin$ ./execute_grid.sh
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create new service: ChromeDriverService
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: host: 'leder-VirtualBox', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.8.0-59-generic', java.version: '1.8.0_131'
Driver info: driver.version: unknown
用相同的 java 客户端连接到 windows 上相同的 java 集线器和节点工作正常!
我在 ubuntu 中的 chromedriver_linux64
集成有问题吗?
我还必须像这样为 chromedriver 使用 java 选项 -D:
java -Dwebdriver.chrome.driver=/opt/selenium/chromedriver -jar /opt/selenium/selenium-server-standalone-3.7.1.jar -role webdriver -hub http://192.168.40.40:4444/grid/register -nodeConfig /opt/selenium/defaultNodeConfig.json -browser "browserName=chrome,platform=LINUX" &
我已经像这样启动了集线器和节点:
#!/bin/bash
java -jar /opt/selenium/selenium-server-standalone-3.7.1.jar -role hub &
java -jar /opt/selenium/selenium-server-standalone-3.7.1.jar -role webdriver -hub http://192.168.40.40:4444/grid/register -nodeConfig /opt/selenium/defaultNodeConfig.json -browser "browserName=chrome,platform=LINUX" &
这是我的 /opt/selenium/defaultNodeConfig.json:
{
"capabilities": [
{
"browserName": "firefox",
"platform": "LINUX",
"maxInstances": 5,
"cleanSession": true,
"webdriver.gecko.driver": "/opt/selenium/geckodriver",
"webdriver.firefox.bin": "/usr/bin/firefox"
},
{
"browserName": "chrome",
"platform": "LINUX",
"maxInstances": 5,
"webdriver.chrome.driver": "/opt/selenium/chromedriver"
}
]
}
当我像这样启动 Selenium 客户端连接到集线器时:
#!/bin/bash
java -cp ".:/opt/selenium/client-combined-3.5.3-nodeps.jar:/opt/selenium/selenium-server-standalone-3.7.1.jar" de.auticon.selenium_server.Grid_SetUp
其中 Grid_SetUp.java 为:
package de.auticon.selenium_server;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import java.net.MalformedURLException;
import java.net.URL;
public class Grid_SetUp {
public static WebDriver driver;
public static void main(String[] args) throws MalformedURLException, InterruptedException{
System.setProperty("webdriver.chrome.driver","/opt/selenium/chromedriver");
String URL = "http://www.google.com";
String Node = "http://192.168.40.40:4444/wd/hub";
DesiredCapabilities cap = DesiredCapabilities.chrome();
driver = new RemoteWebDriver(new URL(Node), cap);
driver.navigate().to(URL);
Thread.sleep(5000);
driver.quit();
}
}
我收到错误:
leder@leder-VirtualBox:~/Source/SeleniumCheese/bin$ ./execute_grid.sh
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create new service: ChromeDriverService
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: host: 'leder-VirtualBox', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.8.0-59-generic', java.version: '1.8.0_131'
Driver info: driver.version: unknown
用相同的 java 客户端连接到 windows 上相同的 java 集线器和节点工作正常!
我在 ubuntu 中的 chromedriver_linux64
集成有问题吗?
我还必须像这样为 chromedriver 使用 java 选项 -D:
java -Dwebdriver.chrome.driver=/opt/selenium/chromedriver -jar /opt/selenium/selenium-server-standalone-3.7.1.jar -role webdriver -hub http://192.168.40.40:4444/grid/register -nodeConfig /opt/selenium/defaultNodeConfig.json -browser "browserName=chrome,platform=LINUX" &