2015-06-12 120 views
2

我無法弄清楚如何爲PhantomJS更改日誌文件的路徑。 我嘗試:在java中更改PhantomJS日誌文件的路徑

DesiredCapabilities caps = new DesiredCapabilities(); 
caps.setJavascriptEnabled(true); 
caps.setCapability("takesScreenshot", false); 
caps.setCapability(
     PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_CLI_ARGS, 
      new String[] { "--logfile=/home/ant/Document/phantomjsdriver.log" }); 
caps.setCapability(
     PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, 
     path); 

並且還帶有:

ArrayList<String> cliArgsCap = new ArrayList<String>(); 
cliArgsCap.add("--logfile=/home/ant/Document/phantomjsdriver.log"); 

DesiredCapabilities caps = new DesiredCapabilities(); 
caps.setJavascriptEnabled(true); 
caps.setCapability("takesScreenshot", false); 
caps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS,cliArgsCap); 

但現在它不工作。

+0

我認爲選擇是'--webdriver-logfile'。請嘗試。 – LittlePanda

+0

@ManaliJ不工作 –

回答

0

我一直在尋找相同的一段時間。

根據GitHub上的this issue,這是困難的,實際上是不可能的。上面提到了一種解決方法,但您需要提供一些Ghostdriver源代碼:main.js及其導入的所有文件。

根據GitHub上的this pull,有一個命令行參數--webdriver-logfile,你可以在實際的日誌中看到這個。但是,通過查看PhatomJSDriver source,訪問CLI參數具有相同的問題:您需要Ghostdriver源。

維護人員對PhantomJS main page有評論,他很遺憾沒有時間去處理這個問題。

3

在看了PhantomJSDriverService.createDefaultService(...)中的代碼之後,我掙扎了很多,纔得到這個工作。我弄明白了。

因此,這裏是我是如何做的,有點哈克,但它的工作對我來說...希望這有助於:

DesiredCapabilities dcap = new DesiredCapabilities(); 
File logfile = new File("ABSOLUTE_PATH_TO_YOUR_LOG_FILE"); 
String[] phantomArgs = [ "--webdriver-loglevel=DEBUG" ] 
PhantomJSDriverService pjsds = new PhantomJSDriverService.Builder() 
       .usingPhantomJSExecutable(f) 
       .usingAnyFreePort() 
       .withProxy(proxy) 
       .usingCommandLineArguments(phantomArgs) 
       .withLogFile(logfile) 
       .build(); 
PhantomJSDriver pdriver = new PhantomJSDriver(pjsds, dcap); 
+0

這裏'usingPhantomJSExecutable(f)','f'應該與'PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY'值的值相同。 – coderz