2015-06-12 86 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