2

我正在将无头 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 命令时测试将运行完成,我不知道为什么会发生这种情况。

4

1 回答 1

1

这听起来像是 Ubuntu 权限错误。您的个人 Ubuntu 用户具有执行权限,但运行 java 文件的用户/进程可能没有。

于 2014-03-04T18:44:15.127 回答