Подтвердить что ты не робот

Ошибка "IEDriverServer не существует" при запуске теста Selenium с С# в Windows 7

Я работаю над средой автоматизации с помощью 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();

См. также this screenshot.

4b9b3361

Ответ 1

Пер Джим Эванс (который работает на IEDriverServer)

Связи .NET не сканируют переменную среды% PATH% для исполняемый файл. Это означает, что для привязок .NET только Ожидается, что IEDriverServer.exe будет найден в том же как сборка привязок .NET, или вы должны указать где он может быть найден в конструкторе Класс InternetExplorerDriver.

Невозможность выполнить одно из этих действий (или установить свойство UseInternalServer в InternetExplorerOptions класс) приведет к тому, что реализация драйвера IE IE исключение. Это строго по дизайну, так как мы хотим, чтобы люди начали используя автономный IEDriverServer.exe и возможность использовать "внутренняя" или "устаревшая" версия сервера будет удалена в будущий выпуск.

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

Ответ 2

IEDriverServer.exe(а также ChromeDriver.exe) можно загрузить с помощью:

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

Чтобы заставить их работать с вашими испытаниями Selenium, включите .exe в тестовый проект и установите для его свойств значение "Копировать всегда".

ПРИМЕЧАНИЕ. Вам нужно будет отредактировать диалоговое окно "Добавить файл" для отображения файлов .exe.

Выполнение этого разрешит ошибку.

Ответ 3

Вот простой пример С# как вызвать 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
        }
    }
}

Ответ 4

Если вы работаете с Visual Studio и С#, я обновил свой пакет NareshScaler nuget для автоматической установки IEDriverServer, ChromeDriver и т.д., что означает, что вы можете быстрее вставать и работать.

http://nuget.org/packages/NareshScaler

Ответ 5

Код для WebDriver с использованием java для работы с IE. Я считаю, что эта концепция может быть полезна для использования С#:

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 = 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 бит) может варьироваться в зависимости от конкретного пользователя]

Ответ 6

Укажите путь только до папки, где находится 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();
    }
} }

Ответ 7

      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;
   }