Re:birth エンジニアリング

Flultterとテックブログと時々iOS

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が起動

今回のサンプルコードはグーグルクロムが起動して閉じるだけの処理になります。

これを使えば、自分が操作しなくてもある一定の処理を自動で行ってくれるようになります。