selenium webdriverで任意のchrome profileを作成し、ログイン情報などを記憶させる

                                        

driverを起動させる度にログインさせるのが面倒

selenium webdriverを使っていると、ログインが必要なサイトにアクセスする時に毎回ログイン情報を入力させてからサイトの中を動作させなければなりません。
複数のdriverを起動させる場合もdriver毎にログインしなければなりません。
ログイン機能のテストをしているのであれば良いのですが、できればログインを飛ばしてしまいたいと思うことはありませんか?

 

通常のChromeであればログイン情報が保存されているのでログインや2段階認証が飛ばせる

いつも使っているChromeでは、ブラウザを立ち上げる度にgoogleのログインが求められますか?2段階認証を求められるでしょうか?
そんなことはありません。ブラウザが認証情報を記憶し、クッキーの認証が切れていなければログイン済みになっています。

 

じゃあchromedriverでも認証情報を保存して、それを読み込みたい

というわけで今回はchromedriverでもプロファイルを作成し、そこに情報を保存し、読み込んで起動させる方法を紹介します。
普段使っているchromeのプロファイルを使うわけではなく、独自で任意のプロファイルを作成できるので、コード毎にプロファイルを使いわけることもできます。超便利。

 

コード

面倒くさそうに思えて実は超簡単。こんな感じ。

 

 

これでデスクトップ上にsample-profileフォルダができて、そこにプロファイルが保存されていき、また読み込んでdriverを起動します。

では、googleに手動でログインしてみましょう。

 

 

ここで一度手動でグーグルにログイン、または2段階認証してみましょう。

終わったらブラウザを閉じてもう一度実行してみると、今度はログインされた状態でgoogleが開きましたね。

 

以上になります。
コード毎にプロファイルを保存するフォルダを変えればいろいろ便利ですし、ローカルのものを読み込んでいるので下手なextensionを使うより安全ですね。