Selenium服务器和Java

Selenium服务器和Java,java,selenium,selenium-rc,Java,Selenium,Selenium Rc,我正在尝试使用java自动化我的selenium脚本。 我尝试执行的命令是: /usr/bin/java -jar /javalibs/selenium-server/selenium-server-standalone-2.32.0.jar -htmlSuite "*firefox" "http://www.google.com" "/tmp/googlesearchsuite.html" "/tmp/RESUTL.html" 这个命令在我的Mac终端上执行得很好。现在我想把它转换成Java

我正在尝试使用java自动化我的selenium脚本。 我尝试执行的命令是:

/usr/bin/java -jar /javalibs/selenium-server/selenium-server-standalone-2.32.0.jar -htmlSuite "*firefox" "http://www.google.com" "/tmp/googlesearchsuite.html" "/tmp/RESUTL.html"
这个命令在我的Mac终端上执行得很好。现在我想把它转换成Java;下面是我使用的代码:

public void localRun() {

    Process p = null;

    try {

        String cmd = "/usr/bin/java -jar /javalibs/selenium-server/selenium-server-standalone-2.32.0.jar -debug -htmlSuite \"*firefox\" \"http://www.google.com\" \"/tmp/googlesearchsuite.html\" \"/tmp/RESUTL.html\"";

        System.out.print("COMMAND: " + cmd);

        System.out.println();

        Runtime runtime = Runtime.getRuntime();
        p = runtime.exec(cmd);
        p.waitFor();

        BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
        BufferedReader error = new BufferedReader(new InputStreamReader(p.getErrorStream()));

        String line = null;

        while ((line = input.readLine()) != null) {
            System.out.println(line);
        }

        line = null;

        while ((line = error.readLine()) != null) {
            System.out.println(line);
        }

        int exitVal = p.waitFor();

    } catch (Exception e) {
        System.out.println(e.toString());
        e.printStackTrace();
    } finally {
        p.destroy();
    }
}
当我运行java代码时,我得到了一个带有奇怪错误消息的日志(省略了整个日志):

testSuite=/lensoo/googlesearchsuite.html
命令:/usr/bin/java-jar/javalibs/selenium-server/selenium-server-standalone-2.32.0.jar-debug-htmlSuite“*firefox”http://www.google.com“/lensoo/googlesearchsuite.html”“/lensoo/RESUTL.html”
14:49:55.619信息-爪哇:苹果公司20.45-b01-451
14:49:55.620信息-操作系统:Mac OS X 10.8.3 x86_64
14:49:55.630信息-v2.32.0,核心是v2.32.0。根据版本6c40c18构建
14:49:55.631信息-Selenium服务器在调试模式下运行。
......
14:49:55.790信息-已启动HttpContext[/wd,/wd]
14:49:55.801信息-已在0.0.0.0:4444启动SocketListener
14:49:55.801信息-开始于org.openqa.jetty.jetty。Server@152c7568
2013年5月3日下午2:49:49 org.openqa.grid.selenium.GridLauncher main
信息:启动独立服务器
找不到HTML套件文件:/Users/maksim/IdeaProjects/CMPE287 TaaS/“/tmp/googlesearchsuite.HTML”:
用法:java-jar selenium-server.jar[-interactive][options]
-端口:selenium服务器应使用的端口号
(默认值4444)
-超时:我们应该允许的整数秒数
克莱。。。。。。。
以下是我得到的全部信息:


从命令行执行命令和java之间有什么区别吗?如果是,那么执行该命令以运行我的Selenium HTML套件的正确方式是什么。

您应该将字符串[]作为第二个参数传递到运行中。改变这一点,我相信它会奏效

String cmd ="/usr/bin/java -jar /javalibs/selenium-server/selenium-server-standalone-2.32.0.jar"
String[] args = {"my","-arguments","-to","pass","in"};
p = runtime.exec(cmd, args);

我也找到了这个答案。这显示了运行命令的两种不同方式。

看起来我已经掌握了。下面是我如何运行该命令的:String[]args=newstring[]{“bash”、“-c”、“/usr/bin/java-jar/javalibs/selenium-server/selenium-server-standalone-2.32.0.jar-debug-htmlSuite\”*firefox\“\”/tmp/googlesearchsuite.html\”/tmp/RESUTL.html\”;Runtime=Runtime.getRuntime();p=runtime.exec(args);感谢您指出我需要使用字符串数组。:)
String cmd ="/usr/bin/java -jar /javalibs/selenium-server/selenium-server-standalone-2.32.0.jar"
String[] args = {"my","-arguments","-to","pass","in"};
p = runtime.exec(cmd, args);