.NETのプロジェクトでWebDriverManagerを使ってWebDriverを自動で更新したい!
概要
今回の記事では、.NETのプロジェクトでWebDriverManagerを使ってWebDriverを自動で更新する掲載する。
ブラウザが更新されるとWebDriverも合わせて対応したバージョンに更新しないとブラウザを操作できなくなってしまうんだけども、毎度WebDriverを更新するのが面倒だ。面倒とはいえブラウザの更新を止めるのもセキュリティ的によろしくない。
そんな場合はどうすれば…!
WebDriverManagerでWebDriverを自動で更新すればいいじゃない。
仕様書
環境
- NET 8.0
- Selenium.Support 4.27.0
- Selenium.WebDriver 4.27.0
- WebDriverManager 2.17.4
手順書
まず、WebDriverManager
をインストールする。
PM> Install-Package WebDriverManager
WebDriver
をインスタンス化する部分をWebDriverManager
を使ったコードに修正すればOKだ!
下記はEdgeを使う例。
using OpenQA.Selenium;
using OpenQA.Selenium.Edge;
using WebDriverManager;
using WebDriverManager.DriverConfigs.Impl;
using WebDriverManager.Helpers;
public class WebDriverManagerTest
{
public static IWebDriver CreateDriver()
{
//var options = new ChromeOptions();
var options = new EdgeOptions();
new DriverManager().SetUpDriver(new EdgeConfig(), VersionResolveStrategy.MatchingBrowser);
var driverVersion = new EdgeConfig().GetMatchingBrowserVersion();
var driverPath = $"./Edge/{driverVersion}/x64/";
var driverService = EdgeDriverService.CreateDefaultService(driverPath);
IWebDriver driver = new EdgeDriver(driverService, options);
return driver;
}
}
下記はChromeを使う例。
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using WebDriverManager;
using WebDriverManager.DriverConfigs.Impl;
using WebDriverManager.Helpers;
public class WebDriverManagerTest
{
public static IWebDriver CreateDriver()
{
var options = new ChromeOptions();
new DriverManager().SetUpDriver(new ChromeConfig(), VersionResolveStrategy.MatchingBrowser);
var driverVersion = new ChromeConfig().GetMatchingBrowserVersion();
var driverPath = $"./Chrome/{driverVersion}/x64/";
var driverService = ChromeDriverService.CreateDefaultService(driverPath);
IWebDriver driver = new ChromeDriver(driverService, options);
return driver;
}
}
まとめ(感想文)
業務でWebDriverを使ってるんだけども、WebDriverManagerのおかげで業務効率化できた!
作者に圧倒的感謝。
参考文献・引用
下記のライブラリーのgithubのページを参考にさせて頂きました。ありがとうございました。