SeleniumのChromeDriverでGoogle Chrome以外のブラウザを動かす
はじめに
ブラウザ自動テストのデファクトスタンダードであるSelenium
そのChromeDriver
を使ってGoogle Chrome
以外のブラウザを操作することができるのか?
という遊び。
動かせた時の感動は省略
やったこと
Chrome.exe
ここから取得:https://download-chromium.appspot.com/
そして適当なパスに配置する
※後述するが、取り直すことになった…
NuGet
ソース
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
変えて起動してみるとこんな感じ。できそうな雰囲気はあった。
※現時点で、ChromeDriverの最新バージョンが75だったので検証保留
あとは、CefSharpで自作したブラウザとか動かしてみたい気持ちがある。
Author And Source
この問題について(SeleniumのChromeDriverでGoogle Chrome以外のブラウザを動かす), 我々は、より多くの情報をここで見つけました https://qiita.com/yk109/items/9032033051b5fbf8ce14著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .