如何使用java使用Selenium运行ghostdriver

如何使用java使用Selenium运行ghostdriver,java,selenium-webdriver,webdriver,phantomjs,ghostdriver,Java,Selenium Webdriver,Webdriver,Phantomjs,Ghostdriver,我想使用phantomJS进行一些web测试,我遇到了GhostDriver()。我使用自述文件中的指令构建了它,可以在指定的端口上运行它,但我不确定如何从java代码访问web驱动程序。为了澄清,我在ruby中看到了以下示例: caps = { :browserName => "phantomjs", :platform => "LINUX" } urlhub = "http://key:secret@hub.testingbot.com:4444/wd/hub

我想使用
phantomJS
进行一些web测试,我遇到了
GhostDriver
()。我使用自述文件中的指令构建了它,可以在指定的端口上运行它,但我不确定如何从java代码访问web驱动程序。为了澄清,我在ruby中看到了以下示例:

  caps = {
  :browserName => "phantomjs",
  :platform => "LINUX"
   }

urlhub = "http://key:secret@hub.testingbot.com:4444/wd/hub"

client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120

@webdriver = Selenium::WebDriver.for :remote, :url => urlhub, :desired_capabilities => caps, :http_client => client
@webdriver.navigate.to "http://www.google.com/"
puts @webdriver.title
@webdriver.save_screenshot("./screenshot.png")
@webdriver.quit

我只是不知道如何在java上做同样的事情。

我相信这个链接会回答您的问题。您将需要Selenium 2.28.0和PhantomJS 1.8。我已经测试了这个,它的工作原理和广告一样,尽管我的测试是先兆性的。注意,您需要下载Selenium zip文件以获取包含绑定的jar。Maven回购协议还没有将其包括在内


为了向其他可能看到这一点的人澄清,从java运行它:

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
                "/Path/to/bin/phantomjs");                  
driver = new PhantomJSDriver(caps);

然后它可以像普通的Web驱动程序一样使用。

首先下载PhantomJSDriver的exe文件。不需要安装,只需从下载此文件,并在给定代码中给出exe文件的路径

 public class Browserlaunch {
    public static void main(String[] args) {
        DesiredCapabilities DesireCaps = new DesiredCapabilities();
        DesireCaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "C:/Drivers/phantomjs/bin/phantomjs.exe");
        WebDriver driver=new PhantomJSDriver(DesireCaps);
        driver.get("http://google.com");

   }
}

仅设置系统属性:

System.setProperty("phantomjs.binary.path", "lib/phantomjs.exe");
WebDriver driver = new PhantomJSDriver();

是的,现在开始工作了。不清楚您是否需要selenium 2.28。谢谢该链接现在不存在。这意味着什么“/Path/to/bin/phantomjs”,我不明白,请解释。只需使用phantomjs二进制文件的文件路径。我在Spring MVC中运行了整个程序,在路径为[/my_Spring_app]的上下文中,我得到了Servlet[Spring]的
severy:Servlet.service()[处理程序处理失败;嵌套异常为java.lang.NoClassDefFoundError:com/google/common/base/Function],根本原因为
。您知道如何解决此问题吗?@PASTRY需要添加到类路径。这是selenium-java的运行时依赖项。如果将PhantomJS可执行路径添加到系统路径,则无需传递该路径。