2013-01-02 38 views
6

我想使用phantomJS進行一些網絡測試,並且我遇到了GhostDriverhttps://github.com/detro/ghostdriver)。我已經使用自述文件中的說明構建了它,並且可以在指定的端口上運行它,但我不確定如何從我的Java代碼訪問Web驅動程序。澄清,我已經看到這個例子在紅寶石:如何使用java運行使用硒的ghostdriver

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

urlhub = "http://key:[email protected]: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做同樣的事情。

回答

5

我相信這個鏈接會回答你的問題。你需要Selenium 2.28.0和PhantomJS 1.8。我已經測試過這個,並且它可以像廣告一樣工作,儘管我的測試是前驅性的。請注意,您需要下載Selenium zip文件以獲取包含綁定的jar。 Maven回購還沒有包括它。

http://ivandemarino.me/2012/12/04/Finally-GhostDriver-1-0-0/

+0

沒錯了現在的工作。目前尚不清楚你需要硒2.28。謝謝! – user650309

+0

@walton謝謝你)你指出我正確的方向 – klvtsov

14

只是爲了澄清別人誰可能會看到這一點,從Java運行它:

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

然後,它可以像通常的webdriver。

+0

這是什麼意思「/路徑/到/ bin/phantomjs」,我不明白,請解釋。 – devsda

+0

只需使用phantomJS二進制文件的文件路徑即可。 – user650309

+0

是的,我解決了這個問題。 :) – devsda

2

首先下載PhantomJSDriver的exe文件。不需要安裝,只需從http://phantomjs.org/download.html下載此文件,只需在給定代碼中提供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"); 

    } 
} 
1

僅設置系統屬性:

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