如何使用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可执行路径添加到系统路径,则无需传递该路径。