我要执行下载网页的phantomJS
脚本(args [1])并将结果html保存到文件(args [2])中,如下所示:
var system = require('system');
var page = require('webpage').create();
var fs = require('fs');
// Set the url address and the path
var url = system.args[1];
var path = system.args[2];
page.open(url, function () {
fs.write(path, page.content, 'w');
phantom.exit();
});
我正在使用selenium/ghostdriver
执行脚本,如下所示:
DesiredCapabilities cap = new DesiredCapabilities();
cap.setJavascriptEnabled(true);
cap.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,".../phantomjs");
String [] phantomJsArgs = {url,path};
cap.setCapability(PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_CLI_ARGS, phantomJsArgs);
PhantomJSDriver driver = new PhantomJSDriver(cap);
String content = new String(Files.readAllBytes(Paths.get(scriptPath)),Charset.forName("UTF-8"));
driver.executePhantomJS(content);
此代码有效,除非我尝试将selenium/ghostdriver
2个参数调用url
和path
作为system.args[1]
和system.args[2]
传递给phantomJS脚本。知道怎么做吗?
答案 0 :(得分:1)
为什么不直接将参数传递给executePhantomJS方法?
driver.executePhantomJS(content, url, path);
答案 1 :(得分:0)
我解决问题的方法不是将2个参数作为参数传递(我们不在命令行中),我所做的是将文件编辑为字符串并用{替换这两个变量的值{1}}。
答案 2 :(得分:0)
使用arguments [0],arguments [1],...来引用args。 http://javadox.com/com.github.detro.ghostdriver/phantomjsdriver/1.1.0/org/openqa/selenium/phantomjs/PhantomJSDriver.html