WebDriverとは【3分でわかる】インストール方法や基本の使い方を解説

  • 2024.06.07
       
WebDriverとは?基礎知識やインストール手順・基本の使い方を解説

本記事では初心者向けにWebDriverの基礎知識やインストール手順・基本的な使い方について解説します。

Selenium WebDriverとは

Selenium(セレニウム)は、Webアプリケーションのテストの自動化をサポートするオープンソースフレームワークであり、2004年に開発されました。多くのブラウザ操作を外部のプログラムから直接制御するAPIを提供しています。

そして、Selenium WebDriverはその中核を成すツールです。「Selenium1(Selenium RC)」と「WebDriver」を統合する形でSelenium 2.0に導入され、2011年にリリースされました。そのため「Selenium2」と呼ばれることもあります。

Chrome/Firefox/Internet Explorer/Opera/Android/iOSなどのブラウザに対応しており、Java/C#/Python/Rubyなどの言語が利用できます。Selenium WebDriverには「FirefoxDriver」や「ChromeDriver」といった、各WebブラウザをコントロールするAPIがそれぞれ実装されていて、それぞれを「WebDriver」とします。Seleniumはほかにもテストケースを記録・再生するブラウザ拡張機能「Selenium IDE」やテストスクリプトを複数のブラウザ/OSで並行して実行する「Selenium Grid」といったコンポーネントを提供しており、それぞれ異なるテストニーズに対応しています。で導入されました。

Selenium1との違い

Webブラウザを自動で操作するという面では「Selenium1(Selenium RC)」と同じですが、Selenium WebDriverでは、ブラウザの拡張機能やOSの機能を利用してブラウザを操作できるため、Selenium1のように、セキュリティ制限を受けずに済みます。

WebDriverの仕組み

Seleniumは、Pythonをはじめとするプログラミング言語で実行します。例えば、Google Chromeを開きたい場合、プログラムでブラウザを開くようSeleniumに指示すればSelenium側で処理を行い、Chrome用のドライバーにブラウザを開くよう指示をします。

WebDriverでできること

Selenium WebDriverはWeb ページへの移動やユーザ入力、JavaScript の実行など、多様な機能を提供します。Web画面操作の実行テストやスクリーンショット撮影、ブラウザによる表示の違いの比較など、Webアプリ開発の役に立ちます。

あなたのご希望に沿った案件が必ず見つかります
【フリーランス向け】高収入好待遇の案件をご紹介

TECH MANIA フリーランス

≫まずは簡単60秒で無料お問い合わせから≪

WebDriverの主な活用例

Webアプリケーションテスト

Webアプリケーション開発において、正常に動作するかを確認するテストは欠かせません。Selenium WebDriverは、テスト工程の自動化に利用されることが多いです。テスト結果の正確性を上げる機能も利用できます。また、メッセージングアプリと連携すればテスト結果をリアルタイムで確認できます。

Webスクレイピング

Webスクレイピングでも、Selenium WebDriverを使用してテストを行う場合があります。スクレイピングとは、任意のWebサイトやプログラムなどから入手したデータを解析し、不要な部分を取り除いて特定の情報のみを抽出し、ソフトウェアで処理がしやすいように整形するコンピュータソフトウェア技術のことでデータ分析やマーケティングに役立ちます。Seleniumは、HTMLだけでなくJavaScriptにも対応しているため動的なページのWebスクレイピングにも適しているのです。この際、「Beautiful Soup」や「Requests」などのほかのライブラリと組み合わせて用いられます。

利用手順

本記事ではPythonでブラウザを自動操作する手順を紹介します。

Seleniumのインストール

コマンドプロンプトで下記コマンドを実行します。

pip install selenium

次のように表示されればインストール完了です。

Installing collected packages: selenium
Successfully installed selenium-(バージョン)

pipのupgradeが必要な場合は、下記コマンドでpipを更新してから再度実行してください。

pip install --upgrade pip

WebDriverのインストール

現在のブラウザのバージョンを確認

Webドライバーのバージョンをブラウザのバージョンと合わせる必要があります。ブラウザごとの確認方法を以下に示します。

対応するバージョンの調べ方
ブラウザバージョンの確認手順
Google Chromeブラウザのバージョン番号に対応
(ブラウザが114.0.xxxであればドライバーは114.0.xxx)
Microsoft Edgeブラウザのバージョン番号に対応
Firefoxダウンロードページのリリースノートに記載されている
(Firefox version is xxx)
現在のChromeバージョンを確認する

Chromeの場合、ブラウザの右上の3点マーク>ヘルプ>「Google Chromeについて」 で確認できます。

【パスを通している場合】現在のChromeDriverのバージョンを確認する
chromedriverの場所を確認する

ChromeDriverのバージョンを確認するには、ChromeDriverのある場所を確認します。コマンドプロンプトを起動し、次のコマンドを実行しましょう。

where chromedriver

パスが通っているとChromedriverのパスが表示されます。

chromedriverのある場所に移動する

そのうち、「\chromedriver.exe」を省く部分をコピーします。カーソルを当てた状態で[Enter]キーを押すことでコピーできます。また、右クリックすればコピー内容をペーストできます。

cd whereコマンドの実行結果のディレクトリ

(例)cd C:\Program Files\selenium
chromedriverを起動する

次のコマンドでChromedriverを起動します。

chromedriver.exe

※パスを通していない場合はこの方法は使用できません。

ドライバーのインストール

Chrome Driverのインストール
【方法1】ChromeDriverをインストールする

ChromeDriverは、Google社が提供するドライバーです。

ダウンロードページにアクセスし、ドライバーをダウンロードします。バージョンが完全に一致してない場合は、Chromeのバージョンより数値が小さいものの中で最新のものを選びましょう。

【方法2】chromedriver-binaryを利用する場合

chromedriver-binaryは、サードパーティ製品で、ドライバーのダウンロードとパスを通す設定もしてくれます。コマンドプロンプトからpipインストールをします。目的に応じて適したバージョンをインストールしましょう。

最新バージョンをインストールする場合

pip install chromedriver-binary

Chromeのバージョンに自動で合わせる場合

Chromeのバージョンに対応するドライバーを自動でダウンロードします。

pip install chromedriver-binary-auto

バージョンを指定してインストールする場合

バージョンを指定する場合はバージョン番号を明記しましょう。

pip install chromedriver-binary == バージョン

2種類の方法がありますが、初心者はchromedriver-binaryを使う方法がおすすめです。この方法では「適切な場所にインストーラを配置する」手順が不要になるためです。

Microsoft Edge WebDriverのインストール

公式ページから自身の環境に応じたインストーラを選択しインストールします。PCのスペックはスタート>設定>バージョン情報で確認できます。

Firefox Driverのインストール

公式ページから自身の環境に応じたインストーラを選択しインストールします。PCのスペックはスタート>設定>バージョン情報で確認できます。

適切な場所にインストーラを配置する

※chromedriver-binaryでインストールした場合は不要

ChromeDriverの置く場所はどこでもかまいませんが、プロジェクトが増えた場合にしっかり管理できていないとドライバーの位置を把握しずらくなってしまいます。そのため適した位置に配置するのが望ましいでしょう。

システム全体で同じバージョンを使う場合

PythonからSelenium WebDriverでドライバーを起動する場合、パスが通る場所に格納すればコード内でパスを明記しなくても問題ありません。システムのパス環境変数に含まれる場所に置けば実行時にパスを記載しなくて済みます。「C:\Windows」「C:\Windows\system32(または64)」「C:\Windows\System32(または64)\Wbem」のいずれかに置きましょう。この場合、ソース内でパスを通す必要はありません。ただし、配置箇所を忘れないよう注意が必要です。

プロジェクトごとにドライバーのバージョンを変える場合

Pythonプロジェクトと同じフォルダに格納して問題ありません。ただし、別のプロジェクトでドライバーを使用する場合はコード内でパスを指定する必要があります。

ドライバーを置き換える場合は必ずプログラムを止めてから配置しましょう。プログラムの実行中は配置できないことに注意が必要です。

ブラウザを操作するコードの作成

ブラウザを操作するコードを作成します。コード作成にはVisual StudioなどのIDEやVSCodeなどのエディタを使用しましょう。なお、サンプルコードはGoogleのトップページを開き、5秒後にブラウザを閉じる場合のPythonコードになっています。

Chromeを自動操作する場合

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.google.com/?hl=ja')
time.sleep(5)

driver.close()
(chromedriver-binaryでインストールした場合)
from selenium import webdriver
import chromedriver_binary
import time

driver = webdriver.Chrome()
driver.get('https://www.google.com/?hl=ja')
time.sleep(5)

driver.close()

Edgeを自動操作する場合

driverのインスタンス化の部分を下記コードに変更します。

driver = webdriver.Edge()

Firefoxを自動操作する場合

driverのインスタンス化の部分を下記コードに変更します。

driver = webdriver.Firefox()

注意点

ブラウザごとにインストールが必要

WebDriverはクロスブラウザに対応していますが、Chromeであればchromedriverというようにブラウザごとにドライバーをインストールする必要があります。

定期的なドライバーの更新が必要

ブラウザのバージョンは日々更新されているのでドライバーもそれに合わせて更新しましょう。ブラウザとドライバーのバージョンが異なっている場合、エラーが出てSelenium WebDriverが実行できない可能性があります。

Selenium WebDriverの基本的な使い方

下記コードをコピペして実行してみましょう。これはGoogleのトップページを開き、5秒後にブラウザを閉じるPythonコードです。

【サンプルコード】

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.google.com/?hl=ja')
time.sleep(5)

driver.close()

ブラウザが自動で開いて5秒後に閉じていれば成功です。

Selenium WebDriverでブラウザを開くと、ログアウト状態でブラウザが起動し、「Chromeは自動テスト ソフトウェアによって制御されています。」と表示されます。

もし、次のように表示された場合は

‘chromedriver’ executable needs to be in PATH

ChromeDriverの場所を明示して実行します。

driver = webdriver.Chrome(r'C:\Users\~~~\chromedriver')

※「r」はPythonでパスをエスケープせずに記述する方法です。

プロジェクトごとにドライバーのバージョンを分けている場合はほかのプロジェクト内のドライバーを認識してしまわないよう明示するのがいいでしょう。

主要なメソッド【一覧】

Selenium WebDriverでよく使用するメソッドを一覧でまとめています。本記事ではPythonでの記述方法を紹介しますが言語によって書き方は異なるので注意してください。

▼ブラウザを起動する

driver = webdriver.xxx()
ブラウザメソッド
Google Chromewebdriver.Chrome()
Edgewebdriver.Edge()
Firefoxwebdriver.Firefox()

▼指定のURLに遷移する

driver.get('URL')

▼一つ前に戻る

driver.back()

▼一つ先に進む

driver.forward()

▼ブラウザを更新する

driver.refresh()

▼現在のURLを表示する

driver.current_url

▼ソースを取得する

driver.page_source

▼要素を取得する

driver.find_element_by_class_name("classname") #classで指定
driver.find_element_by_id("id") #idで指定
driver.find_element_by_xpath("xpath") #xpathで指定 単数
driver.find_element_by_xpaths("xpath") #xpathで指定 複数

▼要素をクリックする

driver.find_element_by_xpath("XPATH").click()

▼スクリーンショットを撮る

driver.save_screenshot(‘C:\test\screenshot.png’) #拡張子は.png、フルパスで指定する

▼スクロールする

driver.execute_script(‘window.scrollBy(x, y);’) #ピクセルで指定する

(例)

driver.execute_script('window.scrollBy(0, 100);') #垂直方向に100ピクセルスクロールする
driver.execute_script('window.scrollTo(0, document.body.scrollHeight);') #最下部にスクロールする

▼全画面表示にする

driver.maximize_window()

▼現在のブラウザを閉じる

driver.close()

▼すべてのブラウザを閉じる

driver.quit()

まとめ

SeleniumはもともとUIテストを自動化するのを目的として開発されましたが、現在はそれだけでなく、Webスクレイピングや繰り返し作業の効率化など、幅広い用途で利用されています。昨今はPower AutomateなどのRPAツールで自動化することも多いですが、テストの自動化にはSeleniumが適しています。RPAツールは有料のものが多いですが、Seleniumはオープンソースなので無料でネット上には豊富に情報があるので、初心者でも安心ですね。

ITスキルの習得方法は?

書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。

ただ、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。

プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。

<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~

このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。

     

Otherカテゴリの最新記事