8

我最近一直在使用 Selenium ( http://www.seleniumhq.org/ ) 进行测试。它随机停止工作,我相信这是由于 Selenium WebDriver 2.53.0 不再与 Firefox 47 兼容(处理 Firefox 浏览器 (FirefoxDriver) 的 WebDriver 组件已停止使用)。

Marionette ([ https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver#.NET][2] ) 是下一代 FirefoxDriver,我一直在努力实现在我的机器上工作,但没有运气。

到目前为止,我已经下载了驱动程序,将文件重命名为 wires.exe 并保存在我网站的根目录中。然后我添加了以下代码:

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);

但是,我收到以下错误消息:

“WebDriver.dll 中发生了‘OpenQA.Selenium.DriverServiceNotFoundException’类型的异常,但未在用户代码中处理

附加信息:wires.exe 文件不存在于当前目录或 PATH 环境变量的目录中。驱动程序可以在 github.com/jgraham/wires/releases 下载。”

如果有人知道如何让 Marionette 驱动程序与 Selenium 一起工作(或者甚至可以指出我正确的方向)并且可以提供逐步说明,那将不胜感激?

谢谢,

丹尼尔

4

1 回答 1

7

Marionette 似乎想使用 FireFox 的夜间版本。下载Geckodriver,重命名为wires.exe,复制到输出。这对我有用(FireFox 47 和 Selenium 2.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));
于 2016-06-15T14:18:26.700 回答