ブラウザの自動化ツールといえば Seleniumですね。
Widowsネイティブで動かすほうがハードルが低いですが、
せっかくなので今回はWindows10 WSL で Seleniumを使って Chromeを起動させる方法を説明します。
(普通のUbuntuでもこれと同じ手順でOKのはずです)
前提としてすでに WSL から Chromeが起動できる状態とします。その方法は下記の記事にまとめているので参照してください。
ちなみに動作確認環境は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 のバージョンを調べてください。
下記のように、このバージョンの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のインストールのとこがつまづきポイントなので注意してください。
コメント