2016-06-13 106 views
8

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

木偶([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“。

这将是非常赞赏,如果有人知道如何让木偶驱动程序与硒的工作(或者甚至可以只点我在正确的方向),并能提供一步一步的指示?

感谢,

丹尼尔

+0

我得到了同样的错误信息,你后,我下载的文件到C:/ Windows和重新命名。当我解除阻塞时,我现在得到OpenQA.Selenium.WebDriverException:无法在http:// localhost:49426/ – johnstaveley

+0

上启动驱动程序服务如果将wires.exe放在路径中并直接在命令提示符下执行,则会收到消息'该程序无法启动,因为VCRUNTIME140.dll从您的计算机中丢失'。这是可从这里:https://www.microsoft.com/en-gb/download/details.aspx?id=48145 – johnstaveley

+0

但是,我已经这样做,安装它,它出现在C:/ Windows/System32中它仍然会给出同样的错误。我甚至从同一个位置运行wires.exe。 – johnstaveley

回答

7

木偶似乎想使用Firefox的每日构建。下载Geckodriver,将其重命名为wires.exe,复制到输出。 这对我的作品(火狐47和硒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)); 
+1

请每晚解释一下。 – Drutten