9
new InternetExplorerDriver();

但我可以看到如下异常:

OpenQA.Selenium.DriverServiceNotFoundException was unhandled by user code
  HResult=-2146233088
  Message=The IEDriverServer.exe file does not exist in the current directory or in a directory on the PATH environment variable. The driver can be downloaded at http://code.google.com/p/selenium/downloads/list.
  Source=WebDriver
  StackTrace:
       at OpenQA.Selenium.DriverService.FindDriverServiceExecutable(String executableName, Uri downloadUrl)
       at OpenQA.Selenium.IE.InternetExplorerDriverService.CreateDefaultService()
       at OpenQA.Selenium.IE.InternetExplorerDriver..ctor(InternetExplorerOptions options)
       at OpenQA.Selenium.IE.InternetExplorerDriver..ctor()
       at Accelrys.CommonTestFramework.WebActions.WebActionLibrary.CreateSeleniumDriver()
4

5 回答 5

9

在创建对象之前将这些行添加到您的代码中。

   System.setProperty("webdriver.ie.driver", 
        "E:\\path where your IEDriverServer is located\\IEDriverServer.exe");

您可以从这里下载 IEDriverServer.exe 文件。

当您使用 C# 时,您可以使用以下代码。

private const string IE_DRIVER_PATH = @"C:\PathTo\IEDriverServer";
var driver = new InternetExplorerDriver(IE_DRIVER_PATH, options);
于 2013-03-06T12:23:18.320 回答
7

正如例外所说,您需要根据您拥有的 IE 下载 32 位或 64 位的 IEDriverServer,并确保它在我们的路径中可用。也就是说,当您在命令行上键入 IEDriverServer.exe 时,它​​应该被解析。试试看

于 2013-03-06T12:20:47.890 回答
4

您需要安装 IEDriverServer 并使其成为您项目的一部分。

这篇文章包含下载链接和一些关于使其成为您项目的一部分的附加信息。

于 2013-03-06T13:08:01.957 回答
2

.NET 绑定不扫描可执行文件的 %PATH% 环境变量。

https://groups.google.com/forum/?fromgroups#!topic/webdriver/EvTyEPYchxE

因此,将 IEDriverServer 放在 .NET 的 %PATH% 中不起作用

使用捆绑了 IE 驱动程序的非官方 NuGet 版本(它放在 Packages-dir 中并从测试项目中引用),或者自己将其与项目捆绑在一起,并在首选项下将 exe 标记为Copy(如果较新)。然后将相对路径添加到InternetExplorerDriver.

于 2016-01-20T15:07:04.450 回答
0

您可以在构造函数的重载中传入 IEDriverServer 的路径

namespace OpenQA.Selenium.IE
    //
    // Summary:
    //     Initializes a new instance of the OpenQA.Selenium.IE.InternetExplorerDriver class
    //     using the specified path to the directory containing IEDriverServer.exe.
    //
    // Parameters:
    //   internetExplorerDriverServerDirectory:
    //     The full path to the directory containing IEDriverServer.exe.
    public InternetExplorerDriver(string internetExplorerDriverServerDirectory);

所以

new InternetExplorerDriver("..\.."); // if it was two folders up
于 2017-03-24T16:09:56.357 回答