web-dev-qa-db-fra.com

Selenium WebDriver sur IE11

J'utilise WebDriver pour automatiser la suite de régression de notre application Web. J'ai essayé de faire fonctionner mes scripts de test avec IE11, mais sans succès.

Je comprends que IEDriverServer.exe ne prend actuellement pas en charge WebDriver et que le problème nécessite la coopération de Microsoft. J'ai suivi les étapes décrites dans les réponses au numéro 6511 de Selenium.

  1. (Pour IE 11 uniquement, vous devez définir une entrée de registre sur l’ordinateur cible afin que le pilote puisse conserver une connexion à l’instance d’Internet Explorer qu’il crée. Pour les installations Windows 32 bits, la clé examiner dans l'éditeur du registre correspond à HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE.

    Pour les installations Windows 64 bits, la clé est HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE. Veuillez noter que la sous-clé FEATURE_BFCACHE peut être ou ne pas être présente et doit être créée si elle n'est pas présente. Dans cette clé, créez une valeur DWORD nommée iexplore.exe avec la valeur 0.)

  2. Les paramètres du mode protégé sont les mêmes pour toutes les zones

  3. Le mode protégé amélioré est désactivé.

Mais toujours quand j’exécute mes scripts d’automatisation dans IE11, c’est un navigateur qui s’ouvre et qui passe en dessous d’Exception

org.openqa.Selenium.ElementNotVisibleException: Received a JavaScript error attempting to 
click on the element using synthetic events.We are assuming this is because the element 
isn't displayed, but it may be due to other problems with executing JavaScript. (WARNING:
The server did not provide any stacktrace
information)

Quelqu'un peut-il m'aider s'il vous plaît dans la façon de résoudre ce problème. J'ai besoin d'exécuter mes scripts d'automatisation dans IE11.

Détails de la version:

  1. Sélénium-2.41.0

  2. Serveur InternetExplorerDriver (32 bits) 2.40.0.0

  3. Windows 7 - 32 bits

11
mra419

C'est un peu délicat et ennuyeux, mais possible.

Vous avez déjà mentionné les paramètres IE nécessaires. Il cache également le contenu entre les exécutions/utilisations et vous devrez effacer le cache et les paramètres personnels. J'ai constaté que ce qui suit aide à garantir que l'instance est propre lors du démarrage. Ce sont des options qui seront transmises à l'instance IE lors de l'instanciation de WebDriver.

Local:

    var options = new InternetExplorerOptions();
    options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
    //Clean the session before launching the browser
    options.EnsureCleanSession = true;

Éloigné:

    capabilities = DesiredCapabilities.InternetExplorer();
    capabilities.SetCapability("ie.ensureCleanSession", true);

Peut-être que cela ainsi que les paramètres de sécurité IE que vous avez mentionnés pourraient fonctionner pour vous.

7
mutt
4
TyMayn

mise à jour pour 2017:

  case "remote5555iexplorer" => {
    println(" load web-driver: remote5555iexplorer")

    val dc = DesiredCapabilities.internetExplorer()
    dc.setJavascriptEnabled(true)
     dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true)
    dc.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true)
    dc.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true)

    dc.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false);

    remote = new RemoteWebDriver(new URL("http://localhost:5555/"), dc) 
    //remote = new InternetExplorerDriver(dc)

  }

iexplorer: 11.0.9.9600.17843 version mise à jour: 11.0.20

libraryDependencies + = "org.seleniumhq.Selenium"% "Selenium-ie-driver"% "3.3.1"

webdriver: IEDriverServer.exe 3.2.0.0 (64 bits)

commande pour exécuter webdriver: IEDriverServer.exe/LOG-LEVEL = DEBUG

0
nexoma