Windows10 WSL or Ubuntu で Selenium を使ってchromeを起動させる

ブラウザの自動化ツールといえば Seleniumですね。

Widowsネイティブで動かすほうがハードルが低いですが、
せっかくなので今回はWindows10 WSL で Seleniumを使って Chromeを起動させる方法を説明します。
(普通のUbuntuでもこれと同じ手順でOKのはずです)

前提としてすでに WSL から Chromeが起動できる状態とします。その方法は下記の記事にまとめているので参照してください。

WSL Windows10 でchrome などのGUIアプリを動かす
WSLが登場して以来、 Windows で Ubuntu が動作するようになりとても快適になりました。 コマンドをCLIで叩いている分には問題ないのですが、ときどきブラウザなどの GUI アプリを起動させたくなるときが有ります。 W...

ちなみに動作確認環境はWindows10 WSLで下記のOSです。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.5 LTS"
スポンサーリンク

ツールのインストール

今回は Pythonを使って Selenium を起動させるので Pythonが使える確認してください。バージョン2ではなくバージョン3です。

$ python3 --version
Python 3.8.10

chrome もインストールしてください。apt でインストールするのが簡単でいいかと思います。下記のようになります。後で必要になるのでバージョンを覚えておいてください。

$ sudo apt install google-chrome-stable
$ google-chrome --version
Google Chrome 105.0.5195.125

次に chrome 用の WebDriver をインストールします。

注意点として、これは apt でインストールしないでください。
「sudo apt install chromium-chromedriver」 でインストールできますが期待通りに動きませんでした。

この WebDrvier は Chromeのバージョンと合わせる必要が有ります。
Chrome のバージョンは先程控えたと思うので、それに会った WebDriverをダウンロードします。

下記の公式サイトにアクセスして使っているChromeのバージョンに合う chrome driver のバージョンを調べてください。

ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 106, please download ChromeDriver 106.0.5249.21 If you are using Chrome version 105, please download ChromeDri...

下記のように、このバージョンのChromeにはこのバージョンのchrome driver を使えと書いてあります。

あとはそのバージョンをダウンロードしてください。zipになっているので解凍すると実行可能ファイルが出てきます。それを /usr/bin/ へコピーします。これでchromdriverが動作するようになったはずです。

$ wget https://chromedriver.storage.googleapis.com/105.0.5195.52/chromedriver_linux64.zip
$ unzip chromedriver_linux64.zip
$ sudo cp chromedriver /usr/bin/
$ chromedriver --version
ChromeDriver 105.0.5195.52 (412c95e518836d8a7d97250d62b29c2ae6a26a85-refs/branch-heads/5195@{#853})

最後に Selenium ライブラリをインストールします。

$ sudo apt install python3-selenium
スポンサーリンク

slenium の起動

ここまでくれば Selenium と Python でブラウザを制御できます。例として下記のようなスクリプトを書きました。Googleひらいて検索するだけの簡単なやつです。

$ cat selenium_test.py
from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.google.com/')

search_box = driver.find_element_by_name("q")
search_box.send_keys('Twitter いいね 全削除')
search_box.submit()

#driver.quit()

下記のように実行すれば Chromeが立ち上がって検索結果を表示するはず。

$ python3 selenium_test.py

あとはスクリプトを修正していけばいろいろ制御できるはずです。

スポンサーリンク

まとめ

WSL にてPythoenとSeleniumを使ってChromeを起動させる方法を説明しました。WebDriverのインストールのとこがつまづきポイントなので注意してください。

コメント