web-dev-qa-db-fra.com

Comment fermer geckodriver avec Selenium 3.0.0 beta

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...

7
Grs007

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();
}
3
SKSajjan

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()

2
Jose Cherian

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.

1
Ali Rad

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();
0
nikhilp

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();
        }
0
SKSajjan

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.

0
n1k31t4

Allez dans\Program Files (x86)\Mozilla Firefox \

trouver plugin-container.exe

supprimez ou renommez-le!

solution trouvée ici

0
Jlearner

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.

https://stackoverflow.com/a/45814451/2546759

0
Nir