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

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

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

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

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Python

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

selenium

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

Q&A

解決済

1回答

3391閲覧

seleniumで証明書の「例外を追加」ができない

ma-yu

総合スコア57

HTTPS

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

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Python

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

selenium

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

0グッド

1クリップ

投稿2019/05/31 05:12

編集2019/05/31 05:18

前提・実現したいこと

自己証明書を提示するWEBサーバーを持った機器が複数あり、
これらに対し、PCを1台ずつ接続してWEBログインを試みて、WEBブラウザからパラメータの設定を行っています。

これをPython + Seleniumで一連の流れを自動化しようとしましたが、うまくいきません。
どなたか御教授ください。

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

手動時とSelenium使用時で動作が異なります。
原因が分かりません。
ちなみにボタンの押下はXpathを指定して行っています。

<手動(期待する流れ)>

1.URL入力
2.Firefoxが「安全な接続ではありません」エラー表示
3.「エラー内容」クリック
4.「例外を追加...」クリック
5.「セキュリティ例外の追加」ポップアップ表示
6.「セキュリティ例外を承認(C)」クリック
7.ログイン画面に遷移
8.設定画面遷移ボタンクリック
9.設定の変更

<Selenium>

1.URL入力
2.ログイン画面に遷移 ← ここで「安全な接続ではありません」が表示されない
3.画面の要素の一部(ボタンなど)が表示されない
4.Seleniumタイムアウトで終了
5.数十秒経過も画面の要素が表示されない。手動で画面をクリック (以下、手動で試行した結果)
6.Firefoxが「安全な接続ではありません」エラー表示
7.「エラー内容」クリック
8.「例外を追加...」クリック
9.「セキュリティ例外の追加」ポップアップ表示
10.「セキュリティ例外を承認(C)」がクリックできない

その他情報

「自己証明書を提示するWEBサーバーを持った機器」のURLと証明書のCNは全て同一です。
発行日時が全て異なります。
そのため、証明書は1つ1つ異なるものになります。

ブラウザに、「特定のURLへのアクセスは常に許可」などの機能があれば良いのですが...

自動化できなくて困っています。御教授よろしくお願い申し上げます。

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

WEBブラウザ:Firefox ESR60

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは。

自動テスト時の証明書エラーに関しては、
「クリックしてダイアログを押して...」ではなく、実行時のオプションで自己証明書を許容できたと思います。
どうしてもテスト環境で試したい時などでしょうか。

ちょうどFirefox & Python Webdriverの組み合わせの例がMDN上にありますので、参考になれば幸いです。(英語ですがコードサンプルが出ています)

https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/acceptInsecureCerts

(証明書の許容は、該当のセッション中だけだったと思います)

投稿2019/05/31 22:58

suama

総合スコア1997

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

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

ma-yu

2019/06/03 01:54

ご回答ありがとうございます。 試してみたところ、session.get()で動作が止まってしまいました。 しかし、自己証明書を許容できる方法があると知り、調べたところ以下のURLの方法で解決しました。 https://codeday.me/jp/qa/20190103/98487.html 要約すると、accept_untrusted_certs FirefoxProfile()オプションをTrueにすることで解決できました。 ご紹介いただいた方法との違いがいまいち分からないままではありますが、先に進むことができました。 ご教授ありがとうございました。
suama

2019/06/03 03:43

こんにちは。ご自身で解決に至ったようで、なによりです! また、オプションのほうも私も確認してみますね。 こちらこそありがとうござます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問