質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

3172閲覧

「Selenium × IE11 × Python」で、証明書のパス処理ができない

MT-333

総合スコア22

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2020/06/30 06:47

編集2020/06/30 06:55

前提・実現したいこと

「Selenium × IE11 × Python」の環境でブラウザ処理の自動化を行っています。

自己証明書を提示する必要があるページにアクセスした際、
それをパスするためIEドライバー起動時にcapabilities の設定で
「acceptInsecureCerts:True」としているのですが、
以下のエラーメッセージを吐いてしまいドライバーが起動しません。

Chromeなどの他ブラウザでは問題なく動作していますが、
どのように設定すればIEブラウザでも証明書のパスができるか
ご教示いただけないでしょうか。

発生している問題・エラーメッセージ

selenium.common.exceptions.SessionNotCreatedException: Message: No matching capability sets found. Unable to match capability set 0: acceptInsecureCerts was 'true', but the IE driver does not allow bypassing insecure (self-signed) SSL certificates

該当のソースコード

Python

1from selenium import webdriver 2from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 3from time import sleep 4 5# ---------------------------------------------------------------------------------------------------- 6capabilities = DesiredCapabilities.INTERNETEXPLORER 7 8# SSL証明書をパス 9capabilities["acceptInsecureCerts"] = True 10 11driver = webdriver.Ie(executable_path = "ドライバーパス", capabilities = capabilities) 12 13driver.maximize_window() 14driver.get("証明書の提示が必要なページURL") 15 16sleep(3) 17driver.quit()

試したこと

試しに「capabilities["acceptInsecureCerts"] = False」としてみたところ、
問題なくドライバーは起動しました。
IEでは証明書パスの設定ができないのでしょうか?

設定に関しては、こちらのページを参考に設定しました。
Seleniumを使用して証明書を処理する方法は?

補足情報(FW/ツールのバージョンなど)

OS:Windows10 1909
言語:Python 3.7.3
ブラウザ:IE11 11.900.18362.0
WEBドライバー:IEDriverServer.exe 3.150.1(32bit)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラー文は読みましょう!(しっかりと翻訳かけてでも)

Unable to match capability set 0: acceptInsecureCerts was 'true', but the IE driver does not allow bypassing insecure (self-signed) SSL certificates

エラー文を翻訳すると、

証明書が安全じゃないよ!(自己署名)IEくん、絶対許さないから。
ということです。証明書がIE的にだめということですね。

投稿2020/06/30 07:56

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MT-333

2020/07/01 07:53

ご回答ありがとうございます。 翻訳をして日本語文として読んではいたのですが、 意味を深くは理解していませんでした。失礼しました。 >証明書が安全じゃないよ!(自己署名)IEくん、絶対許さないから。 >ということです。証明書がIE的にだめということですね。 なるほど、つまりIEブラウザでは自己証明書でのパスは仕様としてNGなんですね。 そうすると、もし無理やり実現するとしたら「このサイトは安全ではありません」の 画面から直接「詳細情報」>「Webページに移動(非推奨)」とクリックして移動させる しか方法はないという理解でよろしいでしょうか。
退会済みユーザー

退会済みユーザー

2020/07/01 08:02

そういうことです。一応IE以外でできるかもしれないのでやってみればいかがでしょうか。
MT-333

2020/07/01 08:13

IEでは↑の通りの操作をさせることで、一応一連の動作の流れとしては実現させることができました。 他のブラウザについても確認してみます。 ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問