LoginSignup
0
1

More than 5 years have passed since last update.

SeleniumのChromeDriverでGoogle Chrome以外のブラウザを動かす

Last updated at Posted at 2019-06-07

はじめに

ブラウザ自動テストのデファクトスタンダードであるSelenium
そのChromeDriverを使ってGoogle Chrome以外のブラウザを操作することができるのか?
という遊び。

動かせた時の感動は省略

やったこと

Chrome.exe

ここから取得:https://download-chromium.appspot.com/
そして適当なパスに配置する
※後述するが、取り直すことになった…

NuGet

Selenium系のモジュール参照
image.png

ソース

var options = new ChromeOptions
{
    // 結局、いつもと違うのはここだけ!
    BinaryLocation = @"C:\Win_x64_638880_chrome-win\chrome-win\chrome.exe"
};

// ヘッドレスでもできたよ!
options.AddArgument("--headless");

using (var driver = new ChromeDriver(options))
{
    var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 5));
    driver.Navigate().GoToUrl("https://www.google.com");
    driver.FindElementByName("q").SendKeys("Chromium");
    driver.FindElementByName("q").Submit();

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

はまったこと

ChromeのバージョンとChromeDriverのバージョンがずれているとエラーになるので注意
こちらを参照ください:Chromiumの特定バージョンをダウンロードする

エラーはこんな感じ

ChromiumDriverSample.ChromiumChromeDriverTest.Sample が例外をスローしました: OpenQA.Selenium.ElementNotInteractableException: element not interactable (Session info: chrome=75.0.3770.0) (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.17763 x86_64)

おわりに

次はChromiumベースのMicrosoft Edgeを動かせるかどうかやってみたい。
BinaryLocation変えて起動してみるとこんな感じ。できそうな雰囲気はあった。
image.png

※現時点で、ChromeDriverの最新バージョンが75だったので検証保留
image.png

あとは、CefSharpで自作したブラウザとか動かしてみたい気持ちがある。

0
1
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
0
1