Je travaille sur le cadre d'automatisation à l'aide de WebDriver avec C #. Cela fonctionne bien avec Firefox mais pas avec IE.
Je reçois l'erreur suivante:
IEDriverServer.exe n'existe pas - Le fichier c:\users\administrator\documents\visual studio 2010\projects\TestProject1\TestProject1\bin\Debug\IEDriverServer.exe n'existe pas. Le pilote peut être téléchargé sur http://code.google.com/p/Selenium/downloads/list
J'utilise IE 9 et 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();
Voir également .
Per Jim Evans (qui travaille sur IEDriverServer)
Les liaisons .NET n'analysent pas la variable d'environnement% PATH% pour l'exécutable. Cela signifie que pour les liaisons .NET uniquement , IEDriverServer.exe devrait se trouver dans le même répertoire que l'assemblage de liaisons .NET, ou vous doit spécifier le répertoire où il peut être trouvé dans le constructeur de la classe InternetExplorerDriver.
Si vous ne faites pas l'une de ces choses (ou si vous ne définissez pas la propriété UseInternalServer dans la classe InternetExplorerOptions), l'implémentation du pilote .NET IE) lèvera une exception. de commencer à utiliser le serveur autonome IEDriverServer.exe et la possibilité d'utiliser une version "interne" ou "héritée" du serveur sera supprimée dans une prochaine version.
https://groups.google.com/forum/?fromgroups#!topic/webdriver/EvTyEPYchxE
Le IEDriverServer.exe (ainsi que ChromeDriver.exe) peuvent être téléchargés à partir de:
http://Selenium-release.storage.googleapis.com/index.html .
Pour les faire fonctionner avec vos tests Selenium, incluez le .exe dans votre projet de test et définissez ses propriétés sur "Copier toujours".
REMARQUE: vous devrez ajuster la boîte de dialogue Ajouter un fichier pour afficher les fichiers .exe.
Cela résoudra l'erreur.
Voici un exemple simple en C # de la façon d'appeler le InternetExplorerDriver
à l'aide de l'IEDriverServer.exe.
Refactoriser selon vos besoins.
Remarque: l'utilisation de driver.Quit()
qui garantit que le processus IEDriverServer.exe est fermé, une fois le test terminé.
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
}
}
}
Code pour WebDriver utilisant Java pour fonctionner avec IE. Je pense que ce concept pourrait vous être utile en utilisant 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);
Si le code ci-dessus ne fonctionne pas, utilisez ce qui suit au lieu de "File file = new File (" C:\Program Files\Internet Explorer\iexplore.exe ");":
File file = new File("F:\\Ripon\\IEDriverServer_Win32_2.25.2\\IEDriverServer.exe");
[Remarque: la version d'IEDriverServer et de Windows (32 ou 64 bits) peut varier d'une personne à l'autre]
Donner le chemin uniquement jusqu'au dossier où se trouve 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();
}
} }
Si vous travaillez avec Visual Studio et C #, j'ai mis à jour mon package de nuget NareshScaler pour installer IEDriverServer, ChromeDriver etc. automatiquement, ce qui signifie que vous pouvez être opérationnel plus rapidement.
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;
}