我最近一直在使用Selenium(http://www.seleniumhq.org/)进行测试。它随机停止工作,我相信这是由于Selenium WebDriver 2.53.0不再与Firefox 47兼容(处理Firefox浏览器的WebDriver组件(FirefoxDriver)已经停产)。
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);
但我收到以下错误消息:
“OpenQA.Selenium.DriverServiceNotFoundException”类型的例外 发生在WebDriver.dll中但未在用户代码中处理
其他信息:wires.exe文件中不存在 当前目录或PATH环境变量上的目录。 驱动程序可以在下载 github.com/jgraham/wires/releases“。
如果有人知道如何让Marionette驱动程序与Selenium合作(或者甚至可以指向正确的方向)并且可以提供分步说明,那将非常感激吗?
谢谢,
丹尼尔
答案 0 :(得分: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));