2014-07-02 91 views
2

設置service_args我需要能夠運行具有以下ARG phantomjs:在硒的webdriver phantomjs節點

--ignore-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); 
} 

回答

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); 

https://github.com/detro/ghostdriver/issues/233

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'] 
]); 
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();