Seleniumでブラウザを立ち上げる時、デフォルトではアドオンが適応されません。
「え、そんなこと出来んの?」と思われる方もいると思いますが、実はSeleniumはアドオンを適応させてブラウザ操作することが出来るのです。
今回は、Firefoxを用いて、Seleniumでアドオンを使う方法をご紹介します。
.xpiファイルの場所を確認する
アドオンは既にブラウザに入れたという前提でお話を進めます。
firefoxはコンピューターにダウンロードした.xpiファイルを認識してブラウザで拡張機能が使えるようにします。
.xpiとは、Webブラウザ「Mozilla」において機能を拡張するためのプラグインに付くファイルのことである。
Weblo辞書
そこで、seleniumにアドオンの存在を知らせるため、.xpiファイルのパスを確認します。
まずはfirefoxを立ち上げます。
左側にコンテナタブのサイドバーと、右上にカラフルなマークがあります。
これはcontainer tab sidebarとconexというアドオンで、すでにパソコンに取り込んでいる状態です。今回はこの2つをseleniumに取り込みます。
メニュー → ヘルプ → トラブルシューティング情報とたどります。
一番下のプロファイルフォルダーを開いて、extensionsフォルダを開きます。
この中にダウンロードした拡張機能に関するファイルが格納されています。これで必要なpathは確認できました。
コードを書く
.xpiファイルまでのPATHが見つかったところで、seleniumにアドオンを読み込ませます。
通常seleniumを動かすときは、
from selenium import webdriver geckodriver = 'geckodriver.exe' driver = webdriver.Firefox(executable_path=geckodriver)
という風に書きますが、アドオンを適応させるときは、
from selenium import webdriver geckodriver = 'geckodriver.exe' driver = webdriver.Firefox(executable_path=geckodriver) extensions_dir = r"C:\Users\mike\AppData\Roaming\Mozilla\Firefox\Profiles\w7t3hgro.default-release\extensions" extensions = [r"\name_of_extension.xpi"] driver.install_addon(extensions_dir + extension, temporary=True)
以上のようにコードを書きます。
しかし、上のコードではアドオンが一つしか適応できないため、for文を使って繰り返しアドオンを適応させます。driver.install_addon(extensions_dir + extension, temporary=True)の前にfor文を加えます。
for extension in extensions:
driver.install_addon(extensions_dir + extension, temporary=True)
これで、任意の数の拡張機能をseleniumのブラウザに適応させることが出来るようになりました。
あとは、アドオンの使い方に沿ったキーボード操作などを駆使して行きます。
まとめ
以上、seleniumにアドオンを適応させる方法の紹介でした。
基本的にアドオンがなくても何でもできる感のあるseleniumですが、アドオンを適応させることで、例えばコードの書き方が分からない場合はアドオンを使って補助することも出来ますし、より人間目線に立ったブラウザ操作が出来るようになります。
「アドオンの適応のさせ方は分かったけど、seleniumではメニューバーとか上手く操作できないんだよね」
という場合は、pyautoguiなども使ってみて、良い感じにブラウザが動くように模索して行くという手もあります。