Visual StudioのSeleniumを3.0に、Firefoxを47.0に更新しましたが、ローカルWebドライバーモードを使用しようとすると、このエラーが発生します。geckodriver.exeファイルが現在のディレクトリまたはPATH環境変数のディレクトリに存在しません。
リモートモード(seleniumhub)を使用している場合、Firefox45.0バージョンを使用していても正常に動作します。
いくつかの例を検索しようとしましたが、c#については何も見つかりませんでした。Javaのみで、それでも機能させることができませんでした。
私のウェブドライバーの設定:
switch (ConfigurationManager.AppSettings["WebDriverMode"].ToLower())
{
case "local":
switch (ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower())
{
case "firefox":
driver = new AdvancedFirefoxDriver();
break;
case "ie":
driver = new AdvancedInternetExplorerDriver();
break;
case "chrome":
driver = new AdvancedChromeDriver();
break;
default:
throw new NotImplementedException(string.Format("WebDriverBrowserCapabilities of \"{0}\" is not implemented for {1} mode", ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower(), ConfigurationManager.AppSettings["WebDriverMode"].ToLower()));
}
break;
case "remote":
var huburl = new Uri(ConfigurationManager.AppSettings["SeleniumHubAddress"]);
DesiredCapabilities capabilities;
switch (ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower())
{
case "firefox":
capabilities = DesiredCapabilities.Firefox();
break;
case "ie":
capabilities = DesiredCapabilities.InternetExplorer();
break;
case "chrome":
capabilities = DesiredCapabilities.Chrome();
break;
default:
throw new NotImplementedException(string.Format("WebDriverBrowserCapabilities of \"{0}\" is not implemented for {1} mode", ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower(), ConfigurationManager.AppSettings["WebDriverMode"].ToLower()));
}
capabilities.IsJavaScriptEnabled = true;
driver = new AdvancedRemoteWebDriver(huburl, capabilities);
break;
default:
throw new NotImplementedException();
}
Selenium 3.0以降、Firefoxブラウザーにはgeckodriver
を使用する必要があります。
ここから最新のgeckodriverをダウンロードしてください https://github.com/mozilla/geckodriver/releases
2つのオプションがあります。
PATH
にgeckodriverパスを入力します。System.Environment.SetEnvironmentVariable("webdriver.gecko.driver",@"/path/to/geckodriver.exe"
注:PATH環境変数を設定すると、システムの再起動が必要になる場合があります。
Firefox 47以降(それを除く)、Seleniumはデフォルトでgeckodriver機能を使用します。 47以前のバージョンでは、Seleniumがこれらのバージョンでの作業に使用したようなFirefoxの組み込みサポートを使用できるように、この機能をオフにする必要がある場合があります。
同じことを達成するためのJavaバージョン:
DesiredCapabilities d = new DesiredCapabilities();
d.setCapability("marionette", false); // to disable marionette.
WebDriver driver = new FirefoxDriver(d);
参照:
SeleniumのChromeドライバーで同様の問題が発生しました。自動化フレームワークの構築に関するコースをたどっていて、テストではなく、フレームワーク参照でNuGetパッケージをインストールしました。-- (
ここからgeckodriverをダウンロードできます: https://github.com/mozilla/geckodriver/releases 次に、次のようにファイルのディレクトリをFirefoxDriverコンストラクターに追加する必要があります。new FirefoxDriver("geckoDriverDirectory")