Environnement: Win 7, Selenium 3.0.0 beta, FireFox- 49.0.1
System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
WebDriver driver=new FirefoxDriver();
Numéro 1:
Commande: driver.close();
ou ((FirefoxDriver) driver).kill();
Résultat attendu: le navigateur devrait fermer.
Résultat réel: le navigateur ne ferme pas.
Numéro 2:
Commande: driver.quit();
Résultat attendu: le navigateur devrait fermer.
Résultat réel: Firefox s'est écrasé.
Erreur: "Le conteneur de plugins pour FireFox a cessé de fonctionner."
Aucune suggestion...
Solution de contournement jusqu'à ce que nous ayons une solution concrète pour cela. Plusieurs publications suggèrent que cela a été corrigé dans les versions 50 et supérieures, mais cela ne fonctionne pas toujours. J'ai installé la dernière version 54 sur deux ordinateurs Windows 7 et le pilote. Quit fonctionne correctement sur l’un et pas sur l’autre avec les mêmes versions de Java et de Selenium. Au lieu de cela, pour une exécution sur des machines Windows, le code suivant aiderait à tuer tous les processus liés à Firefox.
if (browser == "FIREFOX")) {
try {
Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe");
Runtime.getRuntime().exec("taskkill /F /IM plugin-container.exe");
Runtime.getRuntime().exec("taskkill /F /IM firefox.exe");
} catch (IOException e) {
e.printStackTrace();
}
} else {
driver.quit();
}
La solution ci-dessous est testée sous Windows7 avec Firefox49, Selenium 3.0.1, Python 3.5 et geckodriver-v0.11.1 et fonctionne correctement.
import os
Alors appelez
os.system('tskill plugin-container')
avant d'appeler driver.quit()
Tu ne peux pas. Ceci est un bogue actuel qui est toujours ouvert. Donc, sous Windows, si l’on essaie de tuer le pilote FireFox, il ya une erreur: "Getting Error:" Le conteneur de plug-ins pour FireFox a cessé de fonctionner. "
Je pense que ce numéro est ouvert à partir d'aujourd'hui: https://github.com/SeleniumHQ/Selenium/issues/2701
Ce problème n'existe pas sur les autres systèmes d'exploitation et ChromeDriver. C'est juste avec FireFox et geckodriver.
Solution temporaire avec les unicodes de sendkeys:
Actions builder = new Actions(driver);
builder.keyDown(Keys.ALT).sendKeys(String.valueOf('\u0066'));
builder.sendKeys(String.valueOf('\u0058'));
builder.perform();
Une solution simple que j'ai essayée pour exécuter des tests sur une machine Windows était d'ajouter ce code avant driver.quit () ou driver.close () pour le navigateur Firefox avec geckodriver
try {
Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver.quit()
a travaillé pour moi
driver.close()
n'a pas.
(Physiquement} _ cliquer sur le bouton de fermeture à l'aide de la souris ne fonctionne pas.
En utilisant Python 3.6, Selenium 3.4.3 avec geckodriver v.0.18.0
sur Ubuntu 16.04.
Allez dans\Program Files (x86)\Mozilla Firefox \
trouver plugin-container.exe
supprimez ou renommez-le!
solution trouvée ici
J'ai eu un problème similaire, la solution était mise
"browser.tabs.remote.autostart.2" = false
dans les préférences de profil du navigateur.