Selenium環境構築[Mac][Python3]

# はじめに
ブラウザ操作の自動化に取り組むためにseleniumの環境構築をしたところちょっとつまづいたので備忘録として残します。環境構築で詰まってる人の参考になれば幸いです。

### 私の環境
- Macbook Pro 2020
- macOS Catalina 10.15.7
- Python 3.8.1


---
## seleniumのインストール

まずは必要とされるパッケージのインストールをします。

```
pip3 install selenium
```

## ドライバーのインストール
つづいてブラウザ固有のドライバーのインストールをします。
ここではGoogle Chromeのみ解説してますが、FireFoxでも同じようなやり方でダウンロードできると思われます。
（ちなみにFireFoxのドライバー名は"geckodriver"と言うらしいです）

[Google Chrome]
HomeBrewでインストールする場合

```
brew cask install chromedriver
```

## 実行できるかテスト
```
from selenium import webdriver
browser = webdriver.Chrome()
```
うまく実行できるかと思いきや以下のエラーが発生！
ブラウザも一瞬立ち上がって落ちた模様・・

```
python3
Python 3.8.1 (default, Feb 18 2020, 16:49:55)
[Clang 11.0.0 (clang-1100.0.33.17)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> from selenium import webdriver
>>> browser = webdriver.Chrome()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/var/pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 76, in __init__
    RemoteWebDriver.__init__(
  File "/usr/local/var/pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/var/pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/var/pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/var/pyenv/versions/3.8.1/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81
```
どうやらChromeのバージョンとドライバーのバージョンをあわせないと行けないようです。

### エラー原因の調査&設定変更
インストールしたドライバーはどうやらversion 81までしか対応していないようです。
ということでまずはChromeのバージョンを確認してみます。

アドレスバーに以下のように入力すると確認できます。
[chrome://settings/help](chrome://settings/help)
![スクリーンショット 2020-10-18 20.45.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187797/68c54e13-2602-29f2-bdc0-3a9750d8d054.png)
最近アップデートしたので最新版がインストールされている模様（86.0.4240.80)
このChromeのバージョンにあったドライバーをダウンロードします。

以下からダウンロードできます。
[https://chromedriver.chromium.org/downloads](https://chromedriver.chromium.org/downloads)
![スクリーンショット 2020-10-18 20.54.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187797/f5a0419e-5662-66e3-2ee8-04ca84306901.png)
![スクリーンショット 2020-10-18 20.54.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187797/c67cd316-1c21-5544-8089-9d19a5d939ba.png)

zipファイルのため以下コマンドで解凍

```
unzip chromedriver_mac64.zip
または
tar -xvf chromedriver_mac64.zip
```

解凍すると以下のファイルができます。

```
chromedriver
```

このファイルをpip3と同じ階層に格納します。
pip3の階層は以下で確認できます

```
which pip3
/usr/local/var/pyenv/shims/pip3

which python3
/usr/local/var/pyenv/shims/python3
```

この'shims'というディレクトリに'chromedriver'を格納します

```
cd /usr/local/var/pyenv/shims

pwd
/usr/local/var/pyenv/shims

ls -l | grep chrome
-rwxr-xr-x@ 1 admin  admin  15720316 10 18 21:04 chromedriver
```

格納できました。もう一度テストしてみます。
実行すると以下ポップアップが表示されました。せっかくダウンロードしたものを削除したくないので一旦キャンセルをクリック。

![スクリーンショット 2020-10-18 21.06.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187797/a43dc0c8-4de9-2040-73d0-2b1f000e3b66.png)

🍎→「システム環境設定」→「セキュリティとプライバシーポリシー」で許可する必要があります。
![スクリーンショット 2020-10-18 21.07.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187797/1ad5b73f-14ad-b613-44a9-5b9a96bd0c25.png)
![スクリーンショット 2020-10-18 21.07.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187797/da87ce6c-ef6d-7823-f481-06a9bd2d0adb.png)
![スクリーンショット 2020-10-18 21.07.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187797/53c0a3d5-8931-9431-47fb-1a5f6339f357.png)
![スクリーンショット 2020-10-18 21.08.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187797/e443d7f7-3a55-e3f6-829e-9801b38ca77c.png)

ちゃんとChromeが起動しました。テスト成功！！

# おわりに
ひとまず環境構築が終了したのでseleniumをつかって日頃の作業の自動化にチャレンジしてみたいと思います。