SeleniumでUIテストを自動化しよう
いつものFlutter開発とは話が変わりますが、Seleniumを使うとGoogle Chrome をプログラムで自動化することができます。 ちなみに今回の話しはMac限定でWindowsには対応しておりません。 (Selenium自体はWindowsにも対応していたはず)
今回はそのSelenium をインストールしてGoogleページを開くところまでご案内したいと思います。
Seleniumのインストール
私、pip使いなのでpipからSeleniumをインストールします。
pipからseleniumのインストール
$ pip install selenium
pipがない方は次のコマンドでpipを入れましょう。
$ python -V Python 3.6.0
$ sudo easy_install pip
driverのインストール
次にChromeDriver を動かすためにchromedriver
をインストールします。
$ brew install chromedriver
これでSeleniumとChromedriverがインストールできて準備ができました。
注記(Message: session not created: This version of ChromeDriver only supports Chrome version Xが表示される方)
今回の記事を書こうと思った動機がこちらです。 長年seleniumを使っていたのですが、とあるタイミングからterminal でseleniumを走らせようと思った所ターミナルで次のようなエラーが表示されて GoogleChromeが起動しなくなりました。
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 78
私の場合はこのようなエラーが表示されました。 表示される理由はGoogleChromeのバージョンが新しくなって、ChromeDriverのバージョンが合わなくなって使えなくなるからでした。 このようなエラーが表示された場合は、一度インストールしたseleniumとchromedriver をアンインストールして再度インストールしなおせば直ります。
$ pip uninstall selenium
$ pip uninstall chromedriver
このコマンドを実行した後に再度
$ pip install selenium
$ pip install chromedriver
したらエラーが直りました。
サンプルコード
それではseleniumをインストールしたことですし、一度seleniumを使ってみましょう。
VSCodeをお持ちの方でしたら「書類(Documents)」ディレクトリにでも、index.py
のファイル名で次のコードを書いてみましょう。
index.py
from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.google.com") driver.close() driver.quit()
保存します。
保存したらターミナルを開いて、Documentsディレクトリに移動しましょう。
cd Documents
このあとに保存したindex.pyファイルをpythonコマンドで実行したらGoogleChromeが起動します。
python index.py
# google chromeが起動
今回のサンプルコードはグーグルクロムが起動して閉じるだけの処理になります。
これを使えば、自分が操作しなくてもある一定の処理を自動で行ってくれるようになります。