27

我正在使用带有 C# 的 WebDriver 开发自动化框架。它在 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();

另请参阅这个截图

4

7 回答 7

22

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

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

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

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

这样做将解决错误。

于 2012-07-06T18:53:06.573 回答
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
        }
    }
}
于 2012-06-22T10:52:51.297 回答
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

于 2012-06-13T13:56:49.233 回答
1

如果您使用 Visual Studio 和 C#,我已经更新了 NareshScaler nuget 包以自动安装 IEDriverServer、ChromeDriver 等,这意味着您可以更快地启动和运行。

http://nuget.org/packages/NareshScaler

于 2012-06-21T08:54:50.073 回答
1

使用 java 与 IE 一起运行的 WebDriver 的代码。我相信这个概念可能对您使用 C# 有所帮助:

DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);      
File file = new File("C:\\Program Files\\Internet Explorer\\iexplore.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
driver = new InternetExplorerDriver(capabilities);

如果上面的代码不起作用,请使用以下代码而不是“File file = new File("C:\Program Files\Internet Explorer\iexplore.exe");”:

File file = new File("F:\\Ripon\\IEDriverServer_Win32_2.25.2\\IEDriverServer.exe");

[注意:IEDriverServer 和 Windows(32 位或 64 位)的版本可能因人而异]

于 2013-02-27T09:50:11.567 回答
1

仅提供路径,直到 Internetexplorer.exe 所在的文件夹。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using System.IO;

namespace Automation
  {
    class To_Run_IE
     {
        static void Main(string[] args)
        {
         //Keep Internetexplorer.exe in "D:\Automation\32\Internetexplorer.exe"
          IWebDriver driver = new InternetExplorerDriver(@"D:\Automation\32\"); \\Give path till the exe folder
         //IWebDriver driver = new Firefoxdriver()
       driver.Navigate().GoToUrl("http://www.google.com/");
       driver.Manage().Window.Maximize();         
       IWebElement query = driver.FindElement(By.Name("q"));
       query.SendKeys("Cheese");        
       query.Submit();         
       System.Console.WriteLine("Page title is: " + driver.Title);
       driver.Quit();
    }
} }
于 2014-02-26T16:00:17.707 回答
0
      public IWebDriver IEWebDriver()
    {
        var options = new InternetExplorerOptions();
        options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
        webDriver = new   InternetExplorerDriver(ConfigurationSettings.AppSettings["IDEServerPath"].ToString(), options);//Path of ur IE WebDriver,Here I stored it in a AppConfig File
        return webDriver;
   }
于 2012-08-13T08:19:21.023 回答