如何使用C#使用Selenium WebDriver实例化InternetExplorerDriver

时间:2022-09-02 08:46:29
new InternetExplorerDriver();

But I could see exception as below:

但我可以看到异常如下:

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()

5 个解决方案

#1


7  

As the exception says, you need to download IEDriverServer either 32 or 64 bit depending on IE you have and make sure it is available in our path. That is when you type IEDriverServer.exe on command line it should be resolved. Try that

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

#2


9  

Add these lines to your code before creating the object.

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

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

You can download IEDriverServer.exe file from here.

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

As you are using C# you can use the below code.

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

private const string IE_DRIVER_PATH = @"C:\PathTo\IEDriverServer";
var driver = new InternetExplorerDriver(IE_DRIVER_PATH, options);

#3


4  

You need to install IEDriverServer and make it part of your project.

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

This Post contains the download link and some additional information on making it part of your project.

本帖包含下载链接以及有关使其成为项目一部分的一些其他信息。

#4


2  

The .NET bindings don't scan the %PATH% environment variable for the executable.

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

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

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

Hence, it does not work to put IEDriverServer in the %PATH% for .NET.

因此,将IEDriverServer放在.NET的%PATH%中是行不通的。

Use the unofficial NuGet version with the IE-driver bundled (it is put in the Packages-dir and referenced from the test-project), or bundle it yourself with the project, and mark the exe as Copy if newer under preferences. Then add the relative path into the constructor of InternetExplorerDriver.

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

#5


0  

You can pass in the path to the IEDriverServer in an overload of the constructor

您可以在构造函数的重载中传递路径到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);

so

所以

new InternetExplorerDriver("..\.."); // if it was two folders up

#1


7  

As the exception says, you need to download IEDriverServer either 32 or 64 bit depending on IE you have and make sure it is available in our path. That is when you type IEDriverServer.exe on command line it should be resolved. Try that

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

#2


9  

Add these lines to your code before creating the object.

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

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

You can download IEDriverServer.exe file from here.

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

As you are using C# you can use the below code.

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

private const string IE_DRIVER_PATH = @"C:\PathTo\IEDriverServer";
var driver = new InternetExplorerDriver(IE_DRIVER_PATH, options);

#3


4  

You need to install IEDriverServer and make it part of your project.

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

This Post contains the download link and some additional information on making it part of your project.

本帖包含下载链接以及有关使其成为项目一部分的一些其他信息。

#4


2  

The .NET bindings don't scan the %PATH% environment variable for the executable.

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

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

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

Hence, it does not work to put IEDriverServer in the %PATH% for .NET.

因此,将IEDriverServer放在.NET的%PATH%中是行不通的。

Use the unofficial NuGet version with the IE-driver bundled (it is put in the Packages-dir and referenced from the test-project), or bundle it yourself with the project, and mark the exe as Copy if newer under preferences. Then add the relative path into the constructor of InternetExplorerDriver.

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

#5


0  

You can pass in the path to the IEDriverServer in an overload of the constructor

您可以在构造函数的重载中传递路径到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);

so

所以

new InternetExplorerDriver("..\.."); // if it was two folders up