SeleniumBasicを拡張機能付でブラウザ起動させる browsers_extension

リファレンス

 通常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翻訳を追加します。

Chromeに追加をクリック
「拡張機能を追加」をクリック

crxファイルの作成

 拡張機能をSeleniumで利用するために拡張機能ファイル(crxファイル)を作成します。順番は以下の通りです。

STEP
Google拡張機能のファイル場所を確認する
STEP
拡張機能のデベロッパーモードを有効化
STEP
拡張機能をパッケージ化する(crxファイルの作成)

Google拡張機能のファイル場所を確認する

 アドインに追加したGoogle翻訳のファイルがどのフォルダに保存されているか確認します。ブラウザURLに「chrome://version」を入力し、ページ変遷します。

 ページ変遷後、プロフィールパスを確認し、フォルダパスを開きます。拡張機能はプロフィールフォルダのサブフォルダに「extentions」フォルダがありますのでここまでフォルダを開いておきます。今回確認したフォルダパスをまとめると、以下フォルダパスになりました。
shell:Local AppData\Google\Chrome\User Data\Profile 1\Extensions

拡張機能のデベロッパーモードを有効化

Chrome拡張機能のデベロッパーモードを有効化します。

「拡張機能を管理」をクリック
デベロッパーモードを有効化させる。

拡張機能をパッケージ化する(crxファイルの作成)

 拡張機能をSeleniumから呼び出すために、拡張機能をパッケージ化(crxファイルを作成)します。crxファイル作成の手順は以下のとおりです。

STEP
拡張機能のID確認

Google翻訳の詳細画面に変遷し、拡張機能のIDを確認します。

「詳細ボタン」をクリック
Google翻訳のIDを確認する。
STEP
フォルダパス(バージョン含む)の取得

 前段で開いた拡張機能フォルダに該当のIDがあるのを確認し、Google翻訳フォルダパス(バージョン含む)を取得(コピー)します。

拡張機能フォルダでGoogle翻訳のIDフォルダを選択する。

Google翻訳のフォルダパスをコピーしておきます。バージョンフォルダ(2.0.12_0)まで含めますので、コピーするフォルダパス名は以下のとおりです。<ID>は、Google翻訳のIDになります。
shell:Local AppData\Google\Chrome\User Data\Profile 1\Extensions\<ID>\2.0.12_0

STEP
crxファイルの作成

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ファイルを指定します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

VBAを中心とした自動化、効率化の手法を紹介しています。現在は、SeleniumBasicのexamplesを紹介しています。その内、SeleniumBasic以外の手法も掲載したいと思っております。

目次