2016-09-03 6 views
2

selenium-webdriverを使用して、自己署名証明書を使用するサイトをテストしようとしています。Selenium Javascript Webdriver:自己署名入り証明書を受け入れるようにFirefoxプロファイルを設定する方法

Firefoxでテストに合格するには、Firefoxに自己署名証明書を受け入れるように指示するプロファイルを使用する必要があります。

firefox -ProfileManagerを使用して作成したプロファイルを使用できました。しかし、プログラムで作成されたプロファイルは使用できません。

誰かが私がここで紛失していると言うことができますか?ここで

firefox -ProfileManagerによって作成されたプロファイルを使用していますjavascriptプログラムです:

var webdriver = require('selenium-webdriver'); 
var firefox = require('selenium-webdriver/firefox'); 

var profile = new firefox.Profile(); 
profile.setAcceptUntrustedCerts(true); 
profile.setAssumeUntrustedCertIssuer(false); // `true` didn't work too 
var browser = new firefox.Driver(new firefox.Options().setProfile(profile)); 

browser.get('https://self-signed.badssl.com/'); 
browser.quit(); 

私はエラー:

var webdriver = require('selenium-webdriver'); 
var firefox = require('selenium-webdriver/firefox'); 

var profile = new firefox.Profile('/path/to/firefox/profile'); 
var browser = new firefox.Driver(new firefox.Options().setProfile(profile)); 

browser.get('https://self-signed.badssl.com/'); 
browser.quit(); 

そしてここでは、コードによって作成されたプロファイルを使用していますjavascriptプログラムです2番目のプログラムを取得すると、次のようになります。

$ node test-firefox-profile.js 
/user/ws/node_modules/selenium-webdriver/lib/promise.js:654 
    throw error; 
    ^

WebDriverError: Error loading page 
    at WebDriverError (/user/ws/node_modules/selenium-webdriver/lib/error.js:27:10) 
    at Object.throwDecodedError (/user/ws/node_modules/selenium-webdriver/lib/error.js:477:11) 
    at parseHttpResponse (/user/ws/node_modules/selenium-webdriver/lib/http.js:386:15) 
    at /user/ws/node_modules/selenium-webdriver/lib/http.js:328:11 
    at process._tickCallback (node.js:369:9) 
From: Task: WebDriver.navigate().to(https://self-signed.badssl.com/) 
    at Driver.schedule (/user/ws/node_modules/selenium-webdriver/lib/webdriver.js:414:17) 
    at Navigation.to (/user/ws/node_modules/selenium-webdriver/lib/webdriver.js:1042:25) 
    at Driver.get (/user/ws/node_modules/selenium-webdriver/lib/webdriver.js:832:28) 
    at Object.<anonymous> (/user/ws/test-firefox-profile.js:9:9) 
    at Module._compile (module.js:409:26) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 
    at Function.Module._load (module.js:300:12) 
    at Function.Module.runMain (module.js:441:10) 
    at startup (node.js:139:18) 
+0

こんにちは@Younes、解決策は見つかりましたか?私は同じ問題で立ち往生しています。 – 6axter82

+0

いいえ、私はしませんでした。質問に示されているように、ProfileManagerで作成したプロファイルを使用して同じ結果を得ることができます。私はこの問題を解決することができなかったので、私はあらかじめ定義されたプロファイルに落ちています。 – Younes

+0

こんにちは@Younes、ffとphantomjsの私のソリューションでこのリンクをチェックしてください。多分それが助けになるでしょう。 http://stackoverflow.com/questions/39638830/selenium-webdriver-phantom-and-firefox-ssl-issue – 6axter82

答えて

1

answering別の質問がありましたら、私はこの質問に遭遇しました。結局答えを見つけました。もちろん

var webdriver = require('selenium-webdriver'), 
    firefox = require('selenium-webdriver/firefox'), 
    driver = null, 
    profile = new firefox.Profile(); 
profile.setAcceptUntrustedCerts(true); 
profile.setAssumeUntrustedCertIssuer(false); 

var opts = new firefox.Options(); 
opts.setProfile(profile); 
var builder = new webdriver.Builder().forBrowser('firefox'); 
builder.setFirefoxOptions(opts); 
driver = builder.build(); 

driver.get('https://www.google.com'); 
driver.quit(); 

firefox.Profileのすべてのメソッドがfirefox.Optionsでそれを設定し、ビルダーにそれらを渡す前に使用することができます:私はBuilderを使用しての代わりにfirefox.Driver使用しようとしていたために働い何

ビルダーは依然としてfirefox.Driverのインスタンスを返します。

1

これは私のために働いた。 driver = new webdriver.Builder().withCapabilities({'browserName': 'firefox', acceptSslCerts: true, acceptInsecureCerts: true});

関連する問題