设置PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_PATH_PROPERTY

时间:2013-07-12 11:06:49

标签: java selenium-webdriver phantomjs ghostdriver

我在Java程序中正确设置功能PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_PATH_PROPERTY时遇到困难,以便将newest version of Ghostdriver from github与我安装的phantomjs版本(1.9.1)一起使用

以下是我在Java程序中的操作

DesiredCapabilities caps = DesiredCapabilities.phantomjs();
caps.setCapability(
    PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
    "/xxx/phantomjs-1.9.1-linux-x86_64/bin/phantomjs" );
caps.setCapability(
    PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_PATH_PROPERTY,
    "/xxx/ghostdriver/src/main.js");
WebDriver driver = new PhantomJSDriver(caps);

如果我没有设置PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_PATH_PROPERTY,那么selenium驱动程序会正确启动,但是我的测试中会出现一些错误,这些错误应该在ghostdriver的当前开发人员分支中修复。所以我跟着this advice并设置了ghostdriver的cuttent github版本。

但是,现在我收到以下错误:

[ERROR - 2013-07-12T10:22:36.897Z] GhostDriver - Main - Could not start Ghost Driver => {
  "message": "Could not start Ghost Driver",
  "line": 79,
  "sourceId": 140320571924032,
  "sourceURL": "/xxx/ghostdriver/src/main.js",
  "stack": "Error: Could not start Ghost Driver\n    at /xxx/ghostdriver/src/main.js:79",
  "stackArray": [
    {
      "sourceURL": "/xxx/ghostdriver/src/main.js",
      "line": 79
    }
  ]
}

我的问题是,有谁知道如何解决这个问题?我必须以某种方式更改ghostdriver的config.js以使其工作吗?

信息:我是crossposting this also to the github issues of ghostdriver

4 个答案:

答案 0 :(得分:5)

所以我遇到了同样的问题,那就是我试图使用的端口已经被使用了。尝试不同的端口。即:

  

phantomjs - webdriver = 8089 --webdriver-selenium-grid-hub = ...

答案 1 :(得分:2)

杀死正在运行的任何phantomjs进程,然后重试:

ps aux | grep phantom
kill -9 <your phantom process id>

然后再次尝试运行phantomjs。

答案 2 :(得分:1)

我通过查看我的端口是否正在使用来修复此问题 netstat -tulnap这会显示所有正在使用的端口的列表。找到phantomjs正在使用的那个。 然后,您可以使用fuser <your-port-number>/tcp -k终止该过程。 例如,我的端口是4444 fuser 444/tcp -k

答案 3 :(得分:0)

我发现,这只适用于selenium版本&gt; = 2.33。我更新了我的硒,这解决了这个问题。