让Selenium在C#上使用Firefox驱动程序最新3.9.0

时间:2018-02-07 13:47:11

标签: c# selenium firefox geckodriver

我无法让Selenium在c#上使用Firefox驱动程序。 Chrome可以完美运行,但不适用于Firefox。

使用:

  • Netframework 4.6.1
  • 最新版本的selenium 3.9.0
  • Gecko-driver下载自(管理Nuget包)0.19.1
  • 使用MSTest.TestAdapater,它应该像Chrome一样完美。

我已经在Windows中设置了路径变量。

GeckoDriver已安装在源文件夹中的Bin文件夹中。

Firefoxdriverservice不存在,因此无法使用该命令。

我得到的错误是" 引发异常: System.ComponentModel.Win32Exception:系统找不到指定的文件"

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using System.Windows.Forms;

 namespace BeatRecaptcha
{
[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {

        IWebDriver driver = new FirefoxDriver();
        driver.Manage().Window.Maximize();

        //Go to Google
        driver.Navigate().GoToUrl("www.google.co.uk");

    }
}

}

3 个答案:

答案 0 :(得分:2)

不确定您最近是否升级到最新版本的selenium,但是从Selenium 3.0开始,您还需要根据您的系统配置从以下网址下载geckodriver.exe。

https://github.com/mozilla/geckodriver/releases

然后你可以尝试这样的事情:

//Give the path of the geckodriver.exe    
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"C:\Users\abcd\Downloads\geckodriver-v0.13.0-win64","geckodriver.exe")

//Give the path of the Firefox Browser        
service.FirefoxBinaryPath = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";

IWebDriver driver = new FirefoxDriver(service);
driver.Navigate().GoToUrl("https://www.google.com");

答案 1 :(得分:0)

想出来的人。

感谢每个人的贡献。 事实证明3.8.0只支持c#,而不是3.9,nuget会自动安装为Webdriver。 现在一切正常,您甚至不必指定driverservice并将其指向路径,因为它会自动拾取它。

亲切的问候

答案 2 :(得分:0)

通过nuget软件包安装 Selenium.WebDriver.GeckoDriver 。 (1)右键单击项目,然后选择管理nuget程序包

enter image description here

安装后,您在项目中的引用类似于

enter image description here

在此之后,您将不会收到错误消息