J'essaie de tester Internet Explorer 11 avec Selenium WebDriver . Le code est le suivant:
System.setProperty("webdriver.ie.driver", "Path/to//IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
driver.get("www.google.com");
driver.findElement(By.name("q"));
Et je reçois cette erreur:
Ouverture du serveur InternetExplorerDriver (64 bits) 2.46.0.0 Écoute sur le port 43760 Exception dans le thread "principal" org.openqa.Selenium.NoSuchWindowException: impossible de trouver l'élément sur fenêtre fermée (AVERTISSEMENT: le serveur n'a fourni aucune information de piletrace ) Durée de la commande ou délai d'attente: 15 millisecondes Informations sur la construction: version: '2.46.0', révision: '61506a4624b13675f24581e453592342b7485d71', heure: '2015-06-04 10:22:50 'Informations système: hôte:' utilisateur1-PC ', adresse IP: '10 .0.23.71', os.name: 'Windows 7', os.Arch: 'AMD64', os.version: '6.1', Java.version: '1.8.0_45' Informations sur le pilote: org.openqa.Selenium.ie.InternetExplorerDriver Capabilities [{browserAttachTimeout = 0, enablePersistentHover = true, ie.forceCreateProcessApi = false, pageLoadStrategy = normal, ie.usePerProcessProxy = false, ignoreZoomSetting = false, handlesAlerts = true, version = 11, plate-forme = WINDOWS, nativeEvents = true, ie.ensureCleanSession = false, elementScrollBehavior = 0, ie.browserCommandLineSwitches =, requireWindowFocus = false, Nom du navigateur = Internet Explorer, initialBrowserUrl = http: // localhost: 43760/ , takesScreenshot = true, javascriptEnabled = true, ignoreProtectedModeSettings = false, enableElementCacheCleanup = true, cssSelectorsEnabled = true, peacefulAlertBehaviour = licencier}] ID de session: 8a5b7ab5-862a-462d-ab4b-929d4ed5b71a *** Informations sur l'élément: {Using = name, value = q} à Sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method) à Sun.reflect.NativeConstructorAccessorImpl.newInstance (Unknown Source) à Sun.reflect.DelegatingConstructorAccessorImpl.newInstance (Unknown Source) à Java.lang.reflect.Constructor.newInstance (Source inconnue) à org.openqa.Selenium.remote.ErrorHandler.createThrowable (ErrorHandler.Java:204) à org.openqa.Selenium.remote.ErrorHandler.throwIfResponseFailed (ErrorHandler.Java:156) à org.openqa.Selenium.remote.RemoteWebDriver.execute (RemoteWebDriver.Java:605) à org.openqa.Selenium.remote.RemoteWebDriver.findElement (RemoteWebDriver.Java:358) à org.openqa.Selenium.remote.RemoteWebDriver.findElementByName (RemoteWebDriver.Java:431) à org.openqa.Selenium.By $ ByName.findElement (By.Java:300) à org.openqa.Selenium.remote.RemoteWebDriver.findElement (RemoteWebDriver.Java:350) à MySel20Proj.MySel20Proj.App.main (App.Java:42)
J'ai essayé de suivre le didacticiel de configuration sur https://code.google.com/p/Selenium/wiki/InternetExplorerDriver mais ne fonctionne toujours pas. Et ce code fonctionne sur Firefox et Chrome.
Il y a 2 façons:
Way 1: Définition de INITIAL_BROWSER_URL:
File ieFile = new File("D:\\IEDriverServer_x64_2.53.0\\IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", ieFile.getAbsolutePath());
DesiredCapabilities ieCaps = DesiredCapabilities.internetExplorer();
ieCaps.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL, "http://www.bing.com/");
driver = new InternetExplorerDriver(ieCaps);
//some operations on that site
driver.findElement(By.id("sb_form_q")).clear();
driver.findElement(By.id("sb_form_q")).sendKeys("Ripon Al Wasim");
driver.findElement(By.id("sb_form_go")).click();
Way 2: Pour définir une entrée de registre sur l'ordinateur cible:
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 Windows 32 bits: La clé à examiner dans l'éditeur de registre est HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE.
Pour 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 ou peut ne pas être présente et doit être créée si elle ne l'est pas ..__ Important: Dans cette clé, créez une valeur DWORD nommée iexplore.exe avec la valeur 0.
Pour plus de détails, visitez le site: https://github.com/SeleniumHQ/Selenium/wiki/InternetExplorerDriver#required-configuration
J'ai fait face au même problème après avoir passé en revue toutes les solutions possibles. Enfin, j'ai obtenu la réponse. Essayez ceci, il va certainement résoudre votre problème également.
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE");
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
System.setProperty("webdriver.ie.driver","C://MavenTest//driver//IEDriverServer.exe");
driver = new InternetExplorerDriver();
Pour Windows 32 bits: La clé à examiner dans l'éditeur de registre est HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE.
Pour 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. Important: dans cette clé, créez une valeur DWORD nommée iexplore.exe avec la valeur 0.
Ripon Al Wasim a posté cette URL, qui est une clé pour IE11 et Selenium . https://github.com/SeleniumHQ/Selenium/wiki/InternetExplorerDriver#required-configuration
J'ai eu cette configuration:
téléchargé à partir d'ici: http://Selenium-release.storage.googleapis.com/index.html?path=2.53/
Je devais suivre le guide et:
FEATURE_BFCACHE
et son iexplore.exe
DWORD dans le registreEn plus:
Selenium remote server
de communiquer avec IEDriverServer
.requireWindowFocus
défini sur true, car la saisie de clé avec Selenium 64 bits était lente en raison d'un problème de délai d'attente ( Selenium WebDriver en tapant très lentement dans le champ de texte du navigateur IE ).Et ça a fonctionné. Je détourne du guide lorsque je spécifie un chemin d'accès à IEDriverServer.exe lorsque j'exécute un serveur autonome. Il n'est donc pas nécessaire qu'il soit dans PATH.
J'avais affronté le même problème. J'ai été confronté alors que j'exécutais mon code dans la version Maven. Ici, dans le fichier XML POM, j'avais une version différente alors que le Selenium installé est une autre version. Il suffit donc de changer la version pour qu'elle corresponde à la version installée. Et maintenant tout fonctionne bien