我在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。
答案 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。我更新了我的硒,这解决了这个问题。