在Windows 7中使用C#运行Selenium测试期间出现"IEDriverServer不存在"错误

Pat*_*Pat 27 c# internet-explorer selenium-rc windows-7 selenium-webdriver

我正在使用WebDriver和C#开发Automation框架.它与Firefox一起正常工作,但不适用于IE.

我收到以下错误:

IEDriverServer.exe不存在 - 文件c:\ users\administrator\documents\visual studio 2010\projects\TestProject1\TestProject1\_bin\Debug\IEDriverServer.exe不存在.该驱动程序可以从http://code.google.com/p/selenium/downloads/list下载

我使用的是IE 9和Windows 7.

IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("http://www.google.co.uk");
IWebElement queryBox = driver.FindElement(By.Name("q"));
queryBox.SendKeys("The Automated Tester");
queryBox.SendKeys(Keys.ArrowDown);
queryBox.Submit();
Run Code Online (Sandbox Code Playgroud)

也可以看看 这个截图.

Pet*_*ier 22

可以从以下位置下载IEDriverServer.exe(以及ChromeDriver.exe):

http://selenium-release.storage.googleapis.com/index.html.

要使这些与Selenium测试一起使用,请在测试项目中包含.exe,并将其属性设置为"始终复制".

注意:您必须调整添加文件对话框以显示.exe文件.

这样做可以解决错误.


Ral*_*oss 16

这是一个简单的C#示例,说明如何InternetExplorerDriver使用IEDriverServer.exe 调用它.

根据您的需要重构.

注意:使用driver.Quit()此选项可确保在测试完成后关闭IEDriverServer.exe进程.

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium.IE;

namespace SeleniumTest
{
    [TestClass]
    public class IEDriverTest
    {
        private const string URL = "http://url";
        private const string IE_DRIVER_PATH = @"C:\PathTo\IEDriverServer.exe";

        [TestMethod]
        public void Test()
        {
            var options = new InternetExplorerOptions()
            {
                InitialBrowserUrl = URL,
                IntroduceInstabilityByIgnoringProtectedModeSettings = true
            };
            var driver = new InternetExplorerDriver(IE_DRIVER_PATH, options);
            driver.Navigate();
            driver.Close(); // closes browser
            driver.Quit(); // closes IEDriverServer process
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


A.J*_*A.J 13

Per Jim Evans(曾在IEDriverServer工作)

.NET绑定不扫描可执行文件的%PATH%环境变量.这意味着对于.NET绑定,IEDriverServer.exe应该与.NET绑定程序集位于同一目录中,或者您必须指定在InternetExplorerDriver类的构造函数中可以找到它的目录.

如果不执行这些操作之一(或在InternetExplorerOptions类中设置UseInternalServer属性)将导致.NET IE驱动程序实现抛出异常.这是严格按照设计,因为我们希望人们开始使用独立的IEDriverServer.exe,并且在将来的版本中将删除使用服务器的"内部"或"遗留"版本的功能.

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