2017-01-05 106 views
1

我想开始写Selenium测试,并且我写的第一个非常基本的测试失败,例外OpenQA.Selenium.DriverServiceNotFoundExceptionSelenium OpenQA.Selenium.DriverServiceNotFoundException在FireFox

using OpenQA.Selenium; 
using OpenQA.Selenium.Firefox; 

namespace WebDriverDemo 
{ 
     class Program 
    { 
     static void Main(string[] args) 
     { 
      IWebDriver driver = new FirefoxDriver(); 
      driver.Url = "http://www.google.com"; 

     } 
    } 
} 

调试器说,我需要下载geckodriver.exe并设置它在我的PATH变量,我已经做了,我仍然得到同样的例外。当我用ChromeDriver做同样的事情时,它可以正常工作。

此外,根据MDN,如果我使用的是Selenium 3.0或更高版本,应该默认启用它。我在Windows 10计算机上使用Selenium 3.0.1。

回答

1

您可以在PATH中添加geckodriver位置,或者使用System.setProperty()方法将其添加到代码中。

看看下面这个链接。它显示了Java中的基本代码,您需要编写C#等效代码。但它提到了使用GeckoDriver的步骤。如果它仍然没有工作,那么请分享你得到的错误。

http://www.automationtestinghub.com/selenium-3-0-launch-firefox-with-geckodriver/

+0

嗯,它现在正在工作,我早先在PATH变量中设置了它,并且我收到了同样的错误,但我只是再次尝试,没有做任何更改,并且按预期工作。但无论如何,这是正确的解决方案,谢谢。 –

2

我加入geckodriver.exe到我的项目和选择的问题解决了“复制,如果新”以其复制到输出目录财产。

这允许常规代码和NUnit测试找到驱动程序。不需要更改PATH或SetProperty调用。

2

另一种选择是安装Selenium.Firefox.WebDriver NuGet包,它将驱动程序复制到bin文件夹。

然后你就可以提供路径添加到当前文件夹中的驱动程序构造函数运行测试:

IWebDriver driver = new FirefoxDriver("./"); 
-1

刚刚从here下载Firefox的驱动程序。

只需将驱动程序的exe文件复制到bin目录即可。奇迹般有效。 :)