3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【α版】Selenium4のEdgeDriverでChromium版MicrosoftEdgeを動かす

Last updated at Posted at 2020-06-14

2021/11/07 Selenium4が正式リリースされたので新たに記事を書きました
こちらの記事を参考にしてください:
【正式版】Selenium4のEdgeDriverでChromium版MicrosoftEdgeを動かす(IEモードもできるよ♪)

以下、Selenium4のα版という前提の下お楽しみください。
#はじめに
以前こんな記事を書きました:

【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 とする

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

var options = new EdgeOptions
{
    UseChromium = true
};

// Headlessモードはこんな感じ:
//options.AddArgument("--headless");

using (var driver = new EdgeDriver(options))
{
    var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 5));

    driver.Navigate().GoToUrl("https://www.google.com");

    var q = driver.FindElementByName("q");
    q.SendKeys("Chromium");
    q.Submit();

    wait.Until(ExpectedConditions.TitleIs("Chromium - Google 検索"));
    ((ITakesScreenshot)driver).GetScreenshot().SaveAsFile($"{DateTime.Now:yyyyMMddHHmmss}.png");
}

#おわりに

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?