通常SeleniumでChromeを起動させた場合、通常Chromeを利用するデフォルトのプロファイルとは別のプロファイルで起動させるため、Chromeのアドインは何も付与されずに起動されます。
今回のご紹介ではSeleniumブラウザを拡張機能付きで起動します。私は、SeleniumでChromeの拡張機能を利用したことがないのですが、アドインと組み合わせればやれる事の幅は広がるかもしれませんね。
Examplesで紹介されているアドインは、「blocklist」というアドインの様ですが、現在は利用できない様ですので、今回は「Google翻訳」のアドインを付与したいと思います。
- 利用目的は業務効率化です。(テスト自動化ではありません)
- ブラウザはGoogleChromeが対象です。(EdgeやFirefoxは対象外)
- 原文のVBAでは現在エラー発生する場合が多いため、修正を加えてます。
Examples.xlsmの保存場所(ここをクリック)
Examples.xlsmが保存されている場所は、SeleniumBasicがインストールされているサブフォルダ内になります。SeleniumBasicのインストール完了時に保存フォルダを確認することができます。ただ、大体以下フォルダのどちらかにファイル保存されています。
- C:\Program Files\Seleniumbasic\Examples\Excel
- shell:Local AppData\SeleniumBasic\Examples\Excel
アドインのインストール
まずは、手動でChromeを立上げ、好きなアドインをChromeに追加します。今回は、Google翻訳を追加します。ChromeウェブストアでGoogle翻訳を追加します。
crxファイルの作成
拡張機能をSeleniumで利用するために拡張機能ファイル(crxファイル)を作成します。順番は以下の通りです。
Google拡張機能のファイル場所を確認する
アドインに追加したGoogle翻訳のファイルがどのフォルダに保存されているか確認します。ブラウザURLに「chrome://version」を入力し、ページ変遷します。
ページ変遷後、プロフィールパスを確認し、フォルダパスを開きます。拡張機能はプロフィールフォルダのサブフォルダに「extentions」フォルダがありますのでここまでフォルダを開いておきます。今回確認したフォルダパスをまとめると、以下フォルダパスになりました。
shell:Local AppData\Google\Chrome\User Data\Profile 1\Extensions
拡張機能のデベロッパーモードを有効化
Chrome拡張機能のデベロッパーモードを有効化します。
拡張機能をパッケージ化する(crxファイルの作成)
拡張機能をSeleniumから呼び出すために、拡張機能をパッケージ化(crxファイルを作成)します。crxファイル作成の手順は以下のとおりです。
Google翻訳の詳細画面に変遷し、拡張機能のIDを確認します。
前段で開いた拡張機能フォルダに該当のIDがあるのを確認し、Google翻訳フォルダパス(バージョン含む)を取得(コピー)します。
Google翻訳のフォルダパスをコピーしておきます。バージョンフォルダ(2.0.12_0)まで含めますので、コピーするフォルダパス名は以下のとおりです。<ID>は、Google翻訳のIDになります。
shell:Local AppData\Google\Chrome\User Data\Profile 1\Extensions\<ID>\2.0.12_0
crxファイルを作成するために、前項でコピーしたフォルダパス名を利用します。
拡張機能のルートディレクトリにコピーしたフォルダパスをコピペし、「拡張機能をパッケージ化」をクリックします。特に秘密鍵ファイルは入力しません。
これでcrxファイルが作成されました。
拡張機能付きでブラウザ起動
拡張機能付きでブラウザを起動させるコードを実行します。driver.AddExtensionで指定するフォルダでは、特殊フォルダ指定(shell:Local AppData)ができない様ですので、ユーザ名はご自身のPCのユーザ名を入力してください。
Private Sub Use_Chrome_With_Extension()
Dim driver As New ChromeDriver
driver.AddExtension "C:\Users\ユーザ名\AppData\Local\Google\Chrome\User Data\Profile 1\Extensions\aapbdbdomjkkjkaonfhkkikfgjllcleb\2.0.12_0.crx"
driver.Get "https://www.google.co.jp"
Stop
driver.Quit
End Sub
SeleniumBasicでChromeを起動し、拡張機能でGoogle翻訳が追加されました。SeleniumBasicで拡張機能を付加させるためには、driver.AddExtensionメソッドにてcrxファイルを指定します。