Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9547

Selenium4のEdgeDriverでChromium版MicrosoftEdgeを動かす

$
0
0

はじめに

以前こんな記事を書きました:

【SeleniumのChromeDriverでChromium版MicrosoftEdgeを動かす】
ブラウザ自動テストのデファクトスタンダードであるSelenium
そして正式リリースされたChromium版MicrosoftEdge
はたしてChromeDriverを使ってChromium版MicrosoftEdgeを操作することができるのか?

が、色々と状況が変わったので改めて整理しなおしてみました!※動かせた時の感動は省略
変わったポイントは以下:

  • Selenium 4を使いましょう ※NuGetで取得可能(2020/06/14 時点で4.0.0-alpha05
  • Selenium.WebDriver.MSEdgeDriverを使いましょう ※NuGetで取得可能(2020/06/14 時点で83.0.478.37
  • コーディングも自然な感じに実装できるようになりました! ※後述

参考文献:Use WebDriver (Chromium) for test automation

ちなみに

以前書いた記事のやり方だと、こんな例外が出るようになってしまいました:

System.InvalidOperationException: session not created: No matching capabilities found (SessionNotCreated)

やったこと

Chromium版MicrosoftEdgeの取得

こちらからダウンロード&インストール

NuGet

Selenium系の参照
image.png

注意

  • Selenium 4はα版なので、Visual Studio の場合「✅プレリリースを含める」にチェック入れる必要があります
    image.png

  • お手元の Edgeのバージョンに対応した driverを取得する必要があります。

    • MsEdgeでこのURLを叩けばOK:edge://settings/help
    • より高いバージョンのEdge(β版など)を動かしたい場合はこちらからmsedgedriverをダウンロード image.png

ソース

ポイントは2つ

  • EdgeDriverクラスを使用する
  • EdgeOptionsで、UseChromium = trueとする

以前書いた記事と比較すると、より自然な実装ができるようになりました。嬉しい!
ヘッドレスモードも画面ショットも問題ないですよ!

varoptions=newEdgeOptions{UseChromium=true};// Headlessモードはこんな感じ://options.AddArgument("--headless");using(vardriver=newEdgeDriver(options)){varwait=newWebDriverWait(driver,newTimeSpan(0,0,5));driver.Navigate().GoToUrl("https://www.google.com");varq=driver.FindElementByName("q");q.SendKeys("Chromium");q.Submit();wait.Until(ExpectedConditions.TitleIs("Chromium - Google 検索"));((ITakesScreenshot)driver).GetScreenshot().SaveAsFile($"{DateTime.Now:yyyyMMddHHmmss}.png");}

おわりに

  • Selenium 4がんばれ!早く正式版になってくれ~!

Viewing all articles
Browse latest Browse all 9547

Trending Articles