0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初めて使ってみたSelenium

Last updated at Posted at 2021-01-11

概要

Seleniumというツールを聞いたことはあるが、今まで使う機会がなかった。
が、Web上である単調作業を繰り返すことになり、しかもその数が膨大で非常に面倒くさい。

そこで自動化しよう! …という話になって、Webの自動化ツールとしてSeleniumを使ってみた。その導入。
以下ではOSはWindows10、ブラウザはGoogle Chrome、プログラミング言語はPython3.9を使っている。

導入

Seleniumを使うには以下が必要である。

  • Selenium自身
  • ブラウザ
  • ブラウザのDriver

以下ではChromeDriverの実行ファイルをダウンロードする方法と、chromedriver-binaryをimportする方法を書いた。
どちらでも動作に問題はないが、後者は開発環境でimportしたものが使われてない旨の警告が出るのが嫌なので、私は前者を使っている。

ChromeDriverをダウンロードする方法

ChromeDriverの開発ページから、対象のOSとChromeのバージョンに合わせたドライバーを拾って来て、任意の場所に置く。
(以下では C:\git\project\driver\chromedrive.exe に置いたと仮定して話を進める)

利用中のChromeのバージョンは「ヘルプ」>「GoogleChromeについて」で確認できる。
image.png

pipでSeleniumをインストール。

pip install selenium

Python(test.py)のサンプルコードは以下。

from selenium import webdriver
import time

driver = webdriver.Chrome('C:\git\project\driver\chromedrive.exe')
driver.get('https://www.google.co.jp/')
time.sleep(5)
search_box = driver.find_element_by_name("q")
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
driver.quit()

あとはPythonを叩けば、Chromeが開き、Googleのページを表示。
5秒後に「ChromeDriver」で検索、5秒後に閉じるという自動化ができる。

python test.py

chromedriver-binaryを使う方法

pipでSeleniumとchromedriver-binaryをインストール。

pip install selenium
pip install chromedriver-binary==87.0.4280.88

chromedriver-binaryでバージョンを指定しているのは、その時インストールされているChromeのバージョンに合わせたかったから。
何も指定しないとその時の最新版がインストールされ、Chromeのバージョンと合わない場合、エラーが発生する。

from selenium import webdriver
import time
import chromedriver_binary

driver = webdriver.Chrome()
driver.get('https://www.google.co.jp/')
time.sleep(5)
search_box = driver.find_element_by_name("q")
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
driver.quit()

起動や動作方法については上と同様。

python test.py

その他

上の方法では、Google Chromeのバージョンが更新されると、ドライバーとのバージョンが合わず起動時にエラーが出ることがある。
試しに使うだけならブラウザもドライバーも最新版を使えば良いが、そうでない場合は、ブラウザの自動更新を止めておいたほうがいい。
例えばGoogle Chromeの場合はGoogleUpdate.exeが実行されないようにする。

ただし、ブラウザが自動更新されないと、バグや脆弱性が残ってしまう。
そのため、例えば常用のブラウザはEdge、自動操作させるブラウザはChromeなどと、区別しておいたほうが良さそうではある。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?