web-dev-qa-db-fra.com

L'exécutable du pilote doit être défini par la propriété système webdriver.ie.driver.

J'utilise Selenium pour automatiser les tests. Mon application utilise exclusivement IE, elle ne fonctionnera pas sur les autres navigateurs.

Code:

import org.openqa.Selenium.ie.InternetExplorerDriver;
import org.openqa.Selenium.By;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.WebElement;

public class Test {
    public static void main(String[] args) {
        final String sUrl = "http://www.google.co.in/";                             
        System.setProperty("webdriver.chrome.driver","C:\\Users\\vthaduri\\workspace\\LDCSuite\\IEDriverServer.exe");
        WebDriver oWebDriver = new InternetExplorerDriver();
        oWebDriver.get(sUrl);
        WebElement oSearchInputElem = oWebDriver.findElement(By.name("q")); // Use name locator to identify the search input field.
        oSearchInputElem.sendKeys("Selenium 2");
        WebElement oGoogleSearchBtn = oWebDriver.findElement(By.xpath("//input[@name='btnG']"));  
        oGoogleSearchBtn.click();

        try {
            Thread.sleep(5000);
        } catch(InterruptedException ex) {
            System.out.println(ex.getMessage());
        }
        oWebDriver.close();
    }    
}

Et voici l'erreur que je reçois

Le chemin d'accès à l'exécutable du pilote doit être défini par la propriété système webdriver.ie.driver. pour plus d'informations, voir https://github.com/SeleniumHQ/Selenium/wiki/InternetExplorerDriver . La dernière version peut être téléchargée depuis http://www.seleniumhq.org/download/ 12 juin 2012 4:18:42 PM org.Apache.http.impl. client.DefaultRequestDirector tryExecute INFO: exception I/O (Java.net.SocketException) interceptée lors du traitement de la demande: Abandon de la connexion provoqué par le logiciel: échec de la recv 12 juin 2012 4:18:42 PM org.Apache.http .impl.client.DefaultRequestDirector tryExecute

Quelqu'un peut m'aider à ce sujet?

57
vkrams
  1. Vous aurez besoin du pilote InternetExplorer sur votre système. Alors téléchargez-le à partir de la source suggérée ( http://www.seleniumhq.org/download/ ) décompressez-le et placez-le quelque part où vous pourrez le trouver. Dans mon exemple, je supposerai que vous le placerez dans C:\Selenium\iexploredriver.exe

  2. Ensuite, vous devez l'installer dans le système. Voici le code Java collé à partir de mon projet Selenium:

    File file = new File("C:/Selenium/iexploredriver.exe");
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
    WebDriver driver = new InternetExplorerDriver();
    

Fondamentalement, vous devez définir cette propriété avant d'initialiser le pilote

73
Pavel Janicek

Le message d'erreur dit

"Le chemin d'accès à l'exécutable du pilote doit être défini par la propriété système webdriver.ie.driver;"

Vous définissez le chemin du pilote Chrome avec la propriété "webdriver.chrome.driver". Vous ne définissez pas l'emplacement du fichier lorsque vous utilisez InternetExplorerDriver. Pour ce faire, vous devez définir la propriété "webdriver.ie.driver".

Vous pouvez définir ces propriétés dans votre Shell, via maven ou votre IDE avec le -DpropertyName = Value

-Dwebdriver.ie.driver="C:/.../IEDriverServer.exe" 

Vous devez utiliser des guillemets à cause d'espaces ou de barres obliques dans votre chemin sur les machines Windows, ou inversez les barres obliques de la même manière, il s'agit du préfixe d'échappement de chaîne.

Vous pouvez aussi utiliser

System.setProperty("webdriver.ie.driver","C:/.../IEDriverServer.exe"); 

dans votre code.

13
Martin Spamer

Je viens de mettre les fichiers de pilote directement dans mon projet pour ne pas obtenir de dépendance à ma machine locale.

final File file = new File("driver/chromedriver_2_22_mac");
System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());

driver = new ChromeDriver();
2
feed.me

Pour le printemps:

File inputFile = new ClassPathResource("\\chrome\\chromedriver.exe").getFile();
System.setProperty("webdriver.chrome.driver",inputFile.getCanonicalPath());
1
Ran Adler

Vous devrez télécharger le fichier exécutable du pilote InternetExplorer sur votre système et le télécharger à partir du code source ( http://code.google.com/p/Selenium/downloads/list ) après le téléchargement, décompressez-le et mettez sur la place de quelque part dans votre ordinateur. Dans mon exemple, je le placerai dans D:\iexploredriver.exe

Ensuite, vous avez écrit ci-dessous le code dans votre classe principale Eclipse

   System.setProperty("webdriver.ie.driver", "D:/iexploredriver.exe");
   WebDriver driver = new InternetExplorerDriver();
0
Ankit jain