我遇到了一个问题:我必须在java程序中执行一个phantomjs脚本,但我不能这样做。 这是脚本的代码:
var page = require('webpage').create();
page.open('http://stackoverflow.com',function(status){
if(status !== 'success'){
console.log('Open failed');
}else{
console.log(page.evaluate(function(){
return document.documentElement.outerHTML;
}));
}
phantom.exit();
});
在实践中,我想执行网页的javascript并在获取html结果之后。 我尝试使用此链接Running Phantomjs from javascript, JSP or Java上的代码,但我的程序在此行被阻止
int exitStatus = process.waitFor();
我该怎么做才能解决这个问题?
由于
答案 0 :(得分:2)
您可以使用Runtime类来执行终端命令。我能够使用以下程序生成我想要的输出。
Runtime rt = Runtime.getRuntime();
try{
Process pr = rt.exec("pathToPhantomHome/phantomjs "+ " pathToJSfile");
BufferedInputStream bis = new BufferedInputStream(pr.getInputStream());
bis.close();
}catch(Exception ex){
ex.printStackTrace();
}