ブラウザーのドライバーをインストールする
Seleniumは、WebDriverを介して、Chrome/Chromium、Firefox、Internet Explorer、Edge、Opera、Safari などの市場にあるすべての主要なブラウザーをサポートします。 可能な場合、WebDriverは、ブラウザーに組み込まれている自動化のサポートを使用してブラウザーを動かします。
Internet Explorerを除くすべてのドライバーの実装は、ブラウザーベンダー自身によって提供されているため、 標準のSeleniumディストリビューションには含まれていません。 この章では、さまざまなブラウザを使い始めるための基本的な要件について説明します。
Read about more advanced options for starting a driver in our driver configuration documentation.
クイックリファレンス
ブラウザー | サポートするOS | 維持管理機関 | ダウンロード | イシュートラッカー |
---|---|---|---|---|
Chromium/Chrome | Windows/macOS/Linux | Downloads | Issues | |
Firefox | Windows/macOS/Linux | Mozilla | Downloads | Issues |
Edge | Windows/macOS | Microsoft | Downloads | Issues |
Internet Explorer | Windows | Selenium Project | Downloads | Issues |
Safari | macOS High Sierra and newer | Apple | Built in | Issues |
Note: The Opera driver does not support w3c syntax, so we recommend using chromedriver to work with Opera. See the code example for opening an Opera browser
ドライバーを使用する3つの方法
1. ドライバー管理ソフトウェア
ほとんどのマシンはブラウザを自動的に更新しますが、ドライバは更新しません。 ブラウザに適切なドライバを確実に入手するために、多くのサードパーティライブラリが役立ちます。
// Use WebDriver Manager: https://github.com/bonigarcia/webdrivermanager
// Import WebDriver Manager:
import io.github.bonigarcia.wdm.WebDriverManager;
// Call setup() method for the browser driver you want:
WebDriverManager.chromedriver().setup();
// Initialize your driver as you normally would:
ChromeDriver driver = new ChromeDriver();
# Use Webdriver Manager for Python: https://github.com/SergeyPirogov/webdriver_manager
# Import code:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
# Use the `install()` method to set `executabe_path` in a new `Service` instance:
service = Service(executable_path=ChromeDriverManager().install())
# Pass in the `Service` instance with the `service` keyword:
driver = webdriver.Chrome(service=service)
// Use WebDriver Manager Package: https://github.com/rosolko/WebDriverManager.Net
// Import the dependencies:
using WebDriverManager;
using WebDriverManager.DriverConfigs.Impl;
// Use the `SetUpDriver()` which requires a config class:
new DriverManager().SetUpDriver(new ChromeConfig());
// Initialize your driver as you normally would:
var driver = new ChromeDriver()
# Use webdrivers gem: https://github.com/titusfortner/webdrivers
# Add gem to Gemfile:
gem 'webdrivers', '~> 5.0'
# Require webdrivers in your project:
require 'webdrivers'
# Initialize driver as you normally would:
driver = Selenium::WebDriver.for :chrome
// There is not a recommended driver manager for JavaScript at this time
// Use WebDriverManager: https://github.com/bonigarcia/webdrivermanager
// Import the library
import io.github.bonigarcia.wdm.WebDriverManager
// 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
にあるディレクトリを確認するには、コマンドプロンプト/ターミナルを開いて次のように入力します。
echo $PATH
echo %PATH%
* ドライバを配置するディレクトリがまだPATHにない場合は、次のディレクトリを追加する必要があります。
export PATH=$PATH:/opt/WebDriver/bin >> ~/.profile
setx PATH "%PATH%;C:\WebDriver\bin"
* ドライバを起動することで、正しく追加されているかどうかをテストできます。
chromedriver
- 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();
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()
Opera
Operaの現在のリリースはChromiumエンジン上に構築されており、 WebDriverはクローズドソースの Opera Chromium Driver を介してサポートされるようになりました。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.opera.OperaDriver;
WebDriver driver = new OperaDriver();
from selenium.webdriver import Opera
driver = Opera()
using OpenQA.Selenium;
using OpenQA.Selenium.Opera;
IWebDriver driver = new OperaDriver();
# Not currently implemented
const {Builder} = require("selenium-webdriver");
var driver = new Builder().forBrowser('opera').build();
import org.openqa.selenium.WebDriver
import org.openqa.selenium.opera.OperaDriver
val driver: WebDriver = OperaDriver()
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()
iOSでSafariを自動化することを検討している人は、Appiumプロジェクトを検討する必要があります。