首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将参数从Selenium/Ghostdriver传递到PhantomJS脚本

如何将参数从Selenium/Ghostdriver传递到PhantomJS脚本
EN

Stack Overflow用户
提问于 2016-01-20 15:43:24
回答 3查看 1.9K关注 0票数 0

如何执行下载网页(args1)并将结果保存到文件(args2)中的phantomJS脚本,如下所示:

代码语言:javascript
复制
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执行脚本,如下所示:

代码语言:javascript
复制
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);

这段代码可以正常工作,除非我尝试将调用urlpathselenium/ghostdriver 2参数作为system.args[1]system.args[2]传递给phantomJS脚本。你知道怎么做吗?

EN

回答 3

Stack Overflow用户

发布于 2016-01-20 15:54:12

为什么不直接将参数传递给executePhantomJS方法呢?

代码语言:javascript
复制
driver.executePhantomJS(content, url, path);
票数 1
EN

Stack Overflow用户

发布于 2016-01-20 17:31:01

为了解决这个问题,我所做的不是将两个参数作为参数传递(我们不是在命令行中),而是将文件作为字符串进行编辑,并将这两个变量的值替换为String.replace()

票数 0
EN

Stack Overflow用户

发布于 2016-09-05 19:57:53

使用参数,arguments1,...引用参数。http://javadox.com/com.github.detro.ghostdriver/phantomjsdriver/1.1.0/org/openqa/selenium/phantomjs/PhantomJSDriver.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34894209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档