web-dev-qa-db-ja.com

.NET C#を搭載したSeleniumFirefoxマリオネットドライバー

私は最近、テスト目的でSelenium( http://www.seleniumhq.org/ )を使用しています。ランダムに動作を停止しました。これは、Selenium WebDriver2.53.0がFirefox47と互換性がなくなったためだと思います(Firefoxブラウザーを処理するWebDriverコンポーネント(FirefoxDriver)は廃止されました)。

マリオネット([ https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver#.NET] [2] )は次世代のFirefoxDriverであり、私はこれを私のマシンで動作させようと試みてきましたが、うまくいきませんでした。

これまでにドライバーをダウンロードし、ファイルの名前をwires.exeに変更して、Webサイトのルートディレクトリに保存しました。次に、次のコードを追加しました。

string strWires = @"Z:\Web_Development\Websites\test\wires.exe";
Environment.SetEnvironmentVariable("webdriver.gecko.driver", strWires);

FirefoxOptions options = new FirefoxOptions();
options.IsMarionette = true;
FirefoxDriver driver = new FirefoxDriver(options);

ただし、次のエラーメッセージが表示されます。

「タイプ 'OpenQA.Selenium.DriverServiceNotFoundException'の例外がWebDriver.dllで発生しましたが、ユーザーコードで処理されませんでした

追加情報:wires.exeファイルは、現在のディレクトリまたはPATH環境変数のディレクトリに存在しません。ドライバーはgithub.com/jgraham/wires/releasesからダウンロードできます。」

マリオネットドライバーをSeleniumで動作させる方法を知っていて(または私を正しい方向に向けることさえできる)、ステップバイステップの説明を提供できる人がいれば、非常にありがたいです。

ありがとう、

ダニエル

8

マリオネットは、FireFoxのナイトリービルドを使用したいと考えているようです。 Geckodriverをダウンロードし、名前をwires.exeに変更し、出力にコピーします。これは私にとってはうまくいきます(FireFox47とSelenium2.53.0):

var driverService = FirefoxDriverService.CreateDefaultService();
driverService.FirefoxBinaryPath = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
driverService.HideCommandPromptWindow = true;
driverService.SuppressInitialDiagnosticInformation = true;

var driver = new FirefoxDriver(driverService, new FirefoxOptions(), TimeSpan.FromSeconds(60));
7
Gabi Nitulescu