先日書いた下記記事の通り、Chromium版Microsoft Edge(Chromium Edge)の正式版がついにリリースされました。
今回はSelenium WebDriverを使ってChromium Edgeを操作してみたいと思います。
WebDriverのダウンロード
まずは操作に必要なEdge用のWebDriverをダウンロードします。
- Chromium Edgeを実行し、[…](設定など) → [ヘルプとフィードバック] から「Microsoft Edge について」を開いて、バージョンを確認します。2020年1月17日時点では、Stableチャネルのバージョンは「79.0.309.65」となっています。
- WebDriverのダウンロードページにアクセスし、環境にあったWebDriver(zip形式)をダウンロードします。
- ダウンロードしたzipを解凍し、WebDriver本体(msedgedriver.exe)を適当なフォルダに保存します。
.NET用Seleniumのダウンロード
今回はPowerShellでコードを書く予定なので、.NET向けのSeleniumを使います。
下記コマンドのようにNuGetでバージョンを指定して最新版(2020年7月時点では 4.0.0-alpha05 )をダウンロードします。
1 | nuget install "Selenium.WebDriver" -Version 4.0.0-alpha05 |
Chromium版Edgeを操作するPowerShellコード
実際のコードは下記になります。
DLLのパスやEdge本体、WebDriverのパスは環境に応じて書き換えてください。
# | |
# 動作確認: | |
# Microsoft Edge バージョン 103.0.1264.49 (公式ビルド) (64 ビット) | |
# Selenium.WebDriver 4.3.0 | |
# | |
[void][Reflection.Assembly]::LoadFile("C:\System\Lib\WebDriver.dll") #DLL読み込み | |
$msedgedriverDir = "C:\System\Driver\Edge" #Edge Driverがあるフォルダのパス | |
$msedgedriverExe = "msedgedriver.exe" #Edge Driver名 | |
$service = [OpenQA.Selenium.Edge.EdgeDriverService]::CreateDefaultService($msedgedriverDir, $msedgedriverExe) | |
$service.EnableVerboseLogging = $true | |
$driver = New-Object OpenQA.Selenium.Edge.EdgeDriver($service) | |
$driver.Manage().Timeouts().ImplicitWait = [System.TimeSpan]::FromSeconds(5) #暗黙的な待機5秒 | |
#以降ブラウザー操作 | |
$driver.Navigate().GoToUrl("https://www.ka-net.org/blog/") | |
$driver.FindElement([OpenQA.Selenium.By]::Id("s")).SendKeys("Microsoft MVP") | |
$driver.FindElement([OpenQA.Selenium.By]::Id("searchsubmit")).Submit() |
分かりづらいですが、下図が動作画面です。
意図した通りに操作できていることが確認できます。
EdgeHTML版のEdgeでは、下記記事のようにInternet Explorer_Serverクラスのウィンドウ経由で無理やりIEのように操作可能でしたが、Chromium Edgeではそれができません。
今後Edgeの操作を自動化する際は、公式に用意されているWebDriverを使用するのが良いでしょう。
この記事へのコメントはありません。