我需要能够使用以下arg运行phantomjs:
- 忽略-SSL-错误=真
我测试的页面使用自签名证书,因此我需要arg来打开页面。我试图使用下面的代码段在webdriver中传递arg:
capabilities = webdriver.Capabilities.phantomjs();
capabilities.set('service_args', '--ignore-ssl-errors=true');
driver = new webdriver.Builder().
withCapabilities(capabilities).
build();
传递service_args的正确方法是什么?我实际上希望不要因为我无法加载我的测试页面。我可以通过运行来打开页面:
phantomjs --ignore-ssl-errors=true myTest.js
以下是myTest.js中的代码
var page = new WebPage();
page.open('https://my.somefaketestpage.com/', function (status) {
just_wait();
});
function just_wait() {
setTimeout(function() {
page.render('screenshot.png');
phantom.exit();
}, 2000);
}
答案 0 :(得分:2)
正确答案是:
caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true);
caps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] {"--web-security=no", "--ignore-ssl-errors=yes"});
driver = new PhantomJSDriver(caps);
答案 1 :(得分:2)
如果有人需要facebook/php-webdriver CLI参数,可以通过以下方式将参数传递给PhantomJS:
$driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', [
WebDriverCapabilityType::BROWSER_NAME => WebDriverBrowserType::PHANTOMJS,
WebDriverCapabilityType::PLATFORM => WebDriverPlatform::ANY,
'phantomjs.cli.args' => ['--ignore-ssl-errors=true']
]);
答案 2 :(得分:1)
读到这个我真的很困惑,因为接受的答案是Java,并且GhostDriver常量和东西不存在。对于那些也很困惑的人来说,这对我有用:
var webdriver = require('selenium-webdriver'),
Capabilities = webdriver.Capabilities;
var capability = Capabilities
.phantomjs()
.set('phantomjs.cli.args', '--ignore-ssl-errors=true');
var driver = new webdriver
.Builder()
.withCapabilities(capability)
.build();