2 votes

Comment définir l'absence de proxy pour InternetExplorerDriver ?

Mon navigateur IE était réglé sur proxy avant. Je veux établir une connexion directe (sans proxy) lors de l'initialisation d'une nouvelle instance de InternetExplorerDriver au moment de l'exécution. Je peux le faire avec FirefoxProfile mais pas avec DesiredCapabilities. Le code ci-dessous ne définit que le proxy spécifié mais pas le no proxy. Pourriez-vous m'aider à définir aucun proxy pour InternetExplorerDriver ?

String PROXY = "localhost:8080";

org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setHttpProxy(PROXY)
     .setFtpProxy(PROXY)
     .setSslProxy(PROXY);
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new InternetExplorerDriver(cap);

J'aurais quelque chose comme ça :

Proxy proxy = Proxy.NO_Proxy;
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new InternetExplorerDriver(cap);

[EDIT]

String ieDriverPath = Constants.PROJECT_PATH + "\\src\\lib\\handler\\IEDriverServer.exe";
        DesiredCapabilities ieCapabilities = new DesiredCapabilities();

        org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
        proxy.setProxyType(org.openqa.selenium.Proxy.ProxyType.DIRECT);
        ieCapabilities.setCapability(CapabilityType.PROXY, proxy);

        System.setProperty("webdriver.ie.driver", ieDriverPath);
        WebDriver webDriver = new InternetExplorerDriver(ieCapabilities);
        webDriver.manage().timeouts().implicitlyWait(Constants.SE_WAIT_IN_SECOND, TimeUnit.SECONDS);

Le code ci-dessus n'a pas fonctionné. L'échec est le suivant :

Aug 14, 2013 9:09:57 AM org.openqa.selenium.browserlaunchers.WindowsProxyManager backupRegistrySettings
INFO: Backing up registry settings...
Exception in thread "main" java.lang.RuntimeException: Bug extracting hudsuckr
    at org.openqa.selenium.browserlaunchers.WindowsProxyManager.extractHudsuckr(WindowsProxyManager.java:575)
    at org.openqa.selenium.browserlaunchers.WindowsProxyManager.runHudsuckr(WindowsProxyManager.java:585)
    at org.openqa.selenium.browserlaunchers.WindowsProxyManager.backupHudsuckrSettings(WindowsProxyManager.java:624)
    at org.openqa.selenium.browserlaunchers.WindowsProxyManager.backupRegistrySettings(WindowsProxyManager.java:286)
    at org.openqa.selenium.ie.InternetExplorerDriver.prepareProxy(InternetExplorerDriver.java:296)
    at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:180)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:174)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:147)
    at acccm.Testing.TID02.main(TID02.java:52)
Caused by: java.io.IOException: Unable to locate: hudsuckr/hudsuckr.exe
    at org.openqa.selenium.io.FileHandler.locateResource(FileHandler.java:86)
    at org.openqa.selenium.io.FileHandler.copyResource(FileHandler.java:55)
    at org.openqa.selenium.browserlaunchers.WindowsProxyManager.extractHudsuckr(WindowsProxyManager.java:572)
    ... 8 more

Selenium version: 2.33
OS: Win 7 64 bit
Browser: IE
Browser version: 8,9

J'apprécierais votre aide.

Merci d'avance.

0voto

JimEvans Points 9709

Le code suivant devrait fonctionner pour vous :

// WARNING! Untested code written from memory without the
// aid of an IDE. May not run or even compile as written
// here. Modify as necessary.
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setProxyType(org.openqa.selenium.Proxy.ProxyType.DIRECT);

DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);

// Only needed for Java (not for other languages), and requires
// version 2.35 or higher of WebDriver. Should bypass the Java
// server proxy setting routines and use the native IEDriverServer.exe
// ones.
cap.setCapability("ie.setProxyByServer", true);

WebDriver driver = new InternetExplorerDriver(cap);

0voto

Mad Piranha Points 389

La configuration du proxy pour le pilote IE nécessite hudsuckr.exe qui est fourni dans le bocal selenium-server-standalone.

Ajouter ceci au classpath devrait résoudre votre problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X