ブラウザーのドライバーをインストールする

自動化するブラウザを設定する。

Seleniumは、WebDriverを介して、Chrome/Chromium、Firefox、Internet Explorer、Edge、Safari などの市場にあるすべての主要なブラウザーをサポートします。 可能な場合、WebDriverは、ブラウザーに組み込まれている自動化のサポートを使用してブラウザーを動かします。

Internet Explorerを除くすべてのドライバーの実装は、ブラウザーベンダー自身によって提供されているため、 標準のSeleniumディストリビューションには含まれていません。 この章では、さまざまなブラウザを使い始めるための基本的な要件について説明します。

Read about more advanced options for starting a driver in our driver configuration documentation.

クイックリファレンス

ブラウザーサポートするOS維持管理機関ダウンロードイシュートラッカー
Chromium/ChromeWindows/macOS/LinuxGoogleDownloadsIssues
FirefoxWindows/macOS/LinuxMozillaDownloadsIssues
EdgeWindows/macOSMicrosoftDownloadsIssues
Internet ExplorerWindowsSelenium ProjectDownloadsIssues
SafarimacOS High Sierra and newerAppleBuilt inIssues

Note: The Opera driver no longer works with the latest functionality of Selenium and is currently officially unsupported.

ドライバーを使用する3つの方法

1. ドライバー管理ソフトウェア

ほとんどのマシンはブラウザを自動的に更新しますが、ドライバは更新しません。 ブラウザに適切なドライバを確実に入手するために、多くのサードパーティライブラリが役立ちます。

Important: This package does not currently work for IEDriverServer v4+

  1. Import WebDriverManager
import io.github.bonigarcia.wdm.WebDriverManager;
  1. Calling setup() automatically puts the correct browser driver where the code will see it:
WebDriverManager.chromedriver().setup();
  1. Just initialize the driver as you normally would:
ChromeDriver driver = new ChromeDriver();
  1. Import WebDriver Manager for Python
from webdriver_manager.chrome import ChromeDriverManager
  1. Use install() to get the location used by the manager and pass it into service class
service = Service(executable_path=ChromeDriverManager().install())
  1. Use Service instance when initializing the driver:
driver = webdriver.Chrome(service=service)
  1. Import WebDriver Manager Package
using WebDriverManager;
using WebDriverManager.DriverConfigs.Impl;
  1. Use the SetUpDriver() which requires a config class:
new DriverManager().SetUpDriver(new ChromeConfig());
  1. Initialize your driver as you normally would:
var driver = new ChromeDriver()
  1. Add webdrivers gem to Gemfile:
gem 'webdrivers', '~> 5.0'
  1. Require webdrivers in your project:
require 'webdrivers'
  1. Initialize driver as you normally would:
driver = Selenium::WebDriver.for :chrome

There is not a recommended driver manager for JavaScript at this time

  1. Import WebDriver Manager
import io.github.bonigarcia.wdm.WebDriverManager;
  1. Call the setup method before initializing the driver as you normally would:
fun chrome(): WebDriver {
    WebDriverManager.chromedriver().setup()
    return ChromeDriver()
}

2. PATH 環境変数

このオプションでは、最初に手動でドライバーをダウンロードする必要があります (リンクについてはクイックリファレンスを参照してください)。

これは、コードを更新せずにドライバーの場所を変更するための柔軟なオプションであり、各マシンがドライバーを同じ場所に配置する必要なく、複数のマシンで機能します。

PATH にすでにリストされているディレクトリにドライバを配置するか、ディレクトリに配置して PATH に追加することができます。

  • すでに PATH にあるディレクトリを確認するには、コマンドプロンプト/ターミナルを開いて次のように入力します。

To see what directories are already on PATH, open a Terminal and execute:

echo $PATH

If the location to your driver is not already in a directory listed, you can add a new directory to PATH:

echo 'export PATH=$PATH:/path/to/driver' >> ~/.bash_profile
source ~/.bash_profile
  • ドライバを起動することで、正しく追加されているかどうかをテストできます。
chromedriver

To see what directories are already on PATH, open a Terminal and execute:

echo $PATH

If the location to your driver is not already in a directory listed, you can add a new directory to PATH:

echo 'export PATH=$PATH:/path/to/driver' >> ~/.zshenv
source ~/.zshenv
  • ドライバを起動することで、正しく追加されているかどうかをテストできます。
chromedriver

To see what directories are already on PATH, open a Command Prompt and execute:

echo %PATH%

If the location to your driver is not already in a directory listed, you can add a new directory to PATH:

setx PATH "%PATH%;C:\WebDriver\bin"
  • ドライバを起動することで、正しく追加されているかどうかをテストできます。
chromedriver.exe

  • If your PATH is configured correctly,
  • PATH が正しく構成されている場合、ドライバーの起動に関連する出力が表示されます。
Starting ChromeDriver 95.0.4638.54 (d31a821ec901f68d0d34ccdbaea45b4c86ce543e-refs/branch-heads/4638@{#871}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

Ctrl+C を押して、コマンドプロンプトの制御を取り戻すことができます。

3. ハードコードされた場所

上記のオプション2と同様に、ドライバーを手動でダウンロードする必要があります。 (リンクについては クイックリファレンス を参照してください)。 コードそのものに場所を指定することには、システム上の環境変数を把握する必要がないという利点がありますが、 コードの柔軟性が大幅に低下するという欠点があります。

System.setProperty("webdriver.chrome.driver","/opt/WebDriver/bin/chromedriver");
ChromeDriver driver = new ChromeDriver();
from selenium.webdriver.chrome.service import Service
from selenium import webdriver

service = Service(executable_path="/opt/WebDriver/bin/chromedriver")
driver = webdriver.Chrome(service=service)
var driver = new ChromeDriver(@"C:\WebDriver\bin");
service = Selenium::WebDriver::Service.chrome(path: '/opt/WebDriver/bin/chromedriver')
driver = Selenium::WebDriver.for :chrome, service: service
const {Builder} = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');

const service = new chrome.ServiceBuilder('/opt/WebDriver/bin/chromedriver');
const driver = new Builder().forBrowser('chrome').setChromeService(service).build();
// Please raise a PR to add code sample

ブラウザの起動

Chromium/Chrome

デフォルトでは、Selenium4はChromev75以降と互換性があります。 Chromeのバージョンとchromedriverのバージョンはメジャーバージョンと一致する必要があることに注意してください。 該当するダウンロードリンクについては、クイックリファレンスを参照してください。

Chromeの起動方法の例は、前章、つまり詳しく説明したドライバーを使用する3つの方法に記載されています。

System.setProperty("webdriver.chrome.driver","/path/to/chromedriver");
ChromeDriver driver = new ChromeDriver();
import org.openqa.selenium.chrome.ChromeDriver

fun main(args: Array<String>) {
  System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver")
  val driver = ChromeDriver()
}

Edge

Microsoft Edgeは、サポートされている最も古いバージョンのv79を使用してChromiumで実装されています。 Chromeと同様に、Edgeのバージョンとedgedriverのバージョンはメジャーバージョンと一致する必要があります。 該当するダウンロードリンクについては、クイックリファレンスを参照してください。

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;

WebDriver driver = new EdgeDriver();
from selenium.webdriver import Edge

driver = Edge()
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

IWebDriver driver = new EdgeDriver();
require "selenium-webdriver"

driver = Selenium::WebDriver.for :edge
const {Builder} = require('selenium-webdriver');

var driver = new Builder().forBrowser('edge').build();
import org.openqa.selenium.WebDriver
import org.openqa.selenium.Edge.EdgeDriver

val driver: WebDriver = EdgeDriver()

Firefox

Selenium4にはFirefox78以降が必要です。 常に最新バージョンのgeckodriverを使用することをお勧めします。 該当するダウンロードリンクについては、クイックリファレンスを参照してください。

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

WebDriver driver = new FirefoxDriver();
  
from selenium.webdriver import Firefox

driver = Firefox()
  
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

IWebDriver driver = new FirefoxDriver();
  
require "selenium-webdriver"

driver = Selenium::WebDriver.for :firefox
  
const {Builder} = require('selenium-webdriver');

var driver = new Builder().forBrowser('firefox').build();
 
import org.openqa.selenium.WebDriver
import org.openqa.selenium.Firefox.FirefoxDriver

val driver: WebDriver = FirefoxDriver()
  

Internet Explorer

Seleniumプロジェクトは、 Microsoftがカレントバージョンとみなすもの と同じリリースをサポートすることを目的としています。 古いリリースは機能する可能性がありますが、サポートされません。 Internet Explorer 11は、2022年6月15日にWindows 10を含む特定のオペレーティングシステムのサポートを終了することに注意してください。Edgeには、引き続きサポートされるIE互換モードがあります。

IEドライバーは、Seleniumプロジェクトによって直接維持される唯一のドライバーです。 Internet Explorerの32ビットバージョンと64ビットバージョンの両方のバイナリを使用できますが、 64ビットドライバーにはいくつかの制限があります。 そのため、32ビットドライバを使用することをお勧めします。 Internet Explorerの設定はログインしたユーザーのアカウントに対して保存されるため、追加の設定が必要になることに注意してください。

Internet Explorerの使用に関する追加情報は、Selenium wikiにあり、 該当するダウンロードリンクのクイックリファレンスを参照してください。

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

WebDriver driver = new InternetExplorerDriver();
  
from selenium.webdriver import Ie

driver = Ie()
  
using OpenQA.Selenium;
using OpenQA.Selenium.IE;

IWebDriver driver = new InternetExplorerDriver();
  
require "selenium-webdriver"

driver = Selenium::WebDriver.for :ie
  
const {Builder} = require('selenium-webdriver');

var driver = new Builder().forBrowser('internet explorer').build();
 
import org.openqa.selenium.WebDriver
import org.openqa.selenium.ie.InternetExplorerDriver

val driver: WebDriver = InternetExplorerDriver()
  

Safari

ChromiumおよびFirefoxドライバーとは異なり、safaridriverはオペレーティングシステムとともにインストールされます。 Safariで自動化を有効にするには、ターミナルから次のコマンドを実行します。

safaridriver --enable
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.safari.SafariDriver;

WebDriver driver = new SafariDriver();
  
from selenium.webdriver import Safari

driver = Safari()
  
using OpenQA.Selenium;
using OpenQA.Selenium.Safari;

IWebDriver driver = new SafariDriver();
  
require "selenium-webdriver"

driver = Selenium::WebDriver.for :safari
  
const {Builder} = require('selenium-webdriver');

var driver = new Builder().forBrowser('safari').build();
  
import org.openqa.selenium.WebDriver
import org.openqa.selenium.safari.SafariDriver

val driver: WebDriver = SafariDriver()
  

Next Step

Create your first Selenium script