我正在将无头 Ubuntu 服务器设置为节点。这个节点通过 Chromedriver 运行 Chrome,当我通过 bash 启动 jar 时,我可以运行测试。这是我正在使用的命令:
java -jar /opt/selenium-server-standalone-2.39.0.jar -role node -hub
http://qwautomation02:4444/grid/register -port 5555
-Dwebdriver.chrome.driver=/opt/chromedriver.exe -nodeConfig /mnt/smb/Configuration/nodeConfig.json
我编写了一个 Java 应用程序来运行此命令并将正在使用的端口插入数据库。此应用程序使用与上述相同的 bash 命令来启动 Selenium 服务器。我从 /opt 目录启动这个 jar,与 Selenium 服务器 jar 所在的目录相同。这是适用的方法:
public static Process startupNode(int portNumber, String browser) throws IOException{
//If Linux, else Windows.
String port = String.valueOf(portNumber);
if (Portability.isUnix()) {
return Runtime.getRuntime().exec(String.format("java -jar /opt/selenium-server-standalone-2.39.0.jar -role node -hub http://qwautomation02:4444/grid/register -port %s -Dwebdriver.chrome.driver=/opt/chromedriver -nodeConfig /mnt/smb/Configuration/nodeConfig.json"
, port));
}
else
return Runtime.getRuntime().exec(String.format("java -jar C:\\Selenium\\vendor\\selenium-server-standalone-2.39.0.jar -role node -hub http://qwautomation02:4444/grid/register -port %s -Dwebdriver.chrome.driver=C:\\Chromedriver\\chromedriver.exe -nodeConfig \\\\qwautomation02\\WebDriver\\Configuration\\nodeConfig.json"
, port));
}
我可以开始一个测试和部分运行,但是这个异常总是在执行过程中抛出并且无法被捕获。
似乎会话在执行过程中失去了与集线器的通信。但是,考虑到当我手动运行 bash 命令时测试将运行完成,我不知道为什么会发生这种情况。