Je reçois une erreur Chrome liée au pilote lors de l'exécution de mes tests Selenium. Le message d'erreur est "Impossible de découvrir les pages ouvertes." Les tests Selenium fonctionnaient tous correctement. jusqu'à hier soir. Le problème semblait commencer après un redémarrage du serveur la veille. Je ne peux pas reproduire cette erreur sur ma boîte locale. L'exécution des tests Selenium à partir de la ligne de commande sur le serveur ouvre le Chrome Navigateur mais entraîne la même erreur. Des idées?
Ligne qui échoue:
chromeDriver = new OpenQA.Selenium.Chrome.ChromeDriver(externalDriverPath);
Message d'erreur et trace de pile:
impossible de découvrir les pages ouvertes (Informations sur le pilote: chromedriver = 2.1, plateforme = Windows NT 6.1 SP1 x86_64) sur OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError (Response errorResponse) sur OpenQA.Selenium.Remote.RemoteWebDriver.Execute (String driverExec `2 paramètres) chez OpenQA.Selenium.Remote.RemoteWebDriver.StartSession (ICapabilities desireCapabilities) chez OpenQA.Selenium.Remote.RemoteWebDriver..ctor (ICommandExecutor commandExecutor, ICapabilities desireCapabilities) chez OpenQA.Selenium.Chrome.Chrome.ChromeDriverDirectory Chrome , Options ChromeOptions) sur OpenQA.Selenium.Chrome.ChromeDriver..ctor (String chromeDriverDirectory) sur SeleniumTests.BaseTest.SetupBrowsers ()
Lors de la création d'une instance de ChromeDriver, une fenêtre de console apparaît. Le serveur avec l'erreur semble se référer à des choses NON MISES EN ŒUVRE.
Sortie ChomeDriver du serveur avec l'erreur:
Démarrage de ChromeDriver (v2.1) sur le port 2984 [4700: 4292: 0108/111503: ERREUR: gpu_info_collector_win.cc (102)] Impossible de récupérer une évaluation WinSAT pour un couvercle va. [4700: 4292: 0108/111503: ERREUR: chrome_views_delegate.cc (176)] NON MIS EN ŒUVRE [4700: 4292: 0108/111503: ERREUR: desktop_root_window_Host_win.cc (746)] NON MISE EN ŒUVRE ED [0108/111504: ERREUR: gl_surface_ cc (132)] eglInitialize a échoué avec l'erreur UNKNO WN [0108/111504: ERREUR: gl_surface_win.cc (97)] GLSurfaceEGL :: InitializeOneOff a échoué.
Sortie ChomeDriver de mon PC qui fonctionne bien:
Démarrage de ChromeDriver (v2.1) sur le port 18786 [884540: 883760: 0108/114010: ERREUR: gpu_info_collector_win.cc (102)] Impossible de récupérer une évaluation WinSAT valide. [884992: 884996: 0108/114010: ERREUR: base_feature_provider.cc (122)] manifestTypes: un contexte de page Web qui manque doit fournir une valeur pour les correspondances. [885232: 885236: 0108/114011: ERREUR: base_feature_provider.cc (122)] manifestTypes: Un contexte de page Web qui manque doit fournir une valeur pour les correspondances. [884540: 883760: 0108/114011: ERREUR: base_feature_provider.cc (122)] manifestTypes: Un contexte de page Web qui manque doit fournir une valeur pour les correspondances. [0108/114011: ERREUR: gl_surface_egl.cc (131)] eglInitialize a échoué avec l'erreur UNKNO WN [0108/114011: ERREUR: gl_surface_win.cc (54)] GLSurfaceEGL :: InitializeOneOff a échoué.
Regardez ici pour d'autres solutions possibles: https://groups.google.com/forum/?hl=en#!topic/Selenium-users/gfvfH-YEC48
Dans mon cas, l'ajout de l'argument --no-sandbox à ChromeOptions a résolu le problème.
Voici une solution rapide que j'ai trouvée en fouillant pour me débarrasser de cette erreur: unknown error: unable to discover open pages
Dans votre fichier de configuration du rapporteur, ajoutez ce qui suit:
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['--no-sandbox']
}
},
La ligne la plus importante est la -- no-sandbox; l'ajout de cette ligne élimine en quelque sorte cette erreur.
Je ne sais pas exactement pourquoi cela fonctionne, mais c'est une solution de contournement que j'ai trouvée en fouillant en ligne.
*********************************** MISES À JOUR au 10/04/2016 ******* ****************************
Veuillez ignorer cette partie ci-dessus car cette solution de contournement n'est PAS une solution appropriée; ci-dessous, je vous montre la solution réelle à votre problème; vous avez juste un pilote chrome chrome et exécutant la "mise à jour du gestionnaire de webdriver" ne sera mis à jour que vers la version 2.22, je vais donc vous montrer comment récupérer la version 2.24 juste en dessous.
Lisez la suite si votre mise à jour du gestionnaire de webdriver ne met pas à jour chromedriver vers la dernière version, c'est-à-dire la version v2.22 précédente OR vers la v2.24 à partir du 10/04/2016.
J'ai perdu quelques semaines en tirant mes cheveux autour d'un problème que j'avais avec "Unable to discover open pages"
et chaque fois que je mettais à jour le chromedriver, il se mettait à jour vers version 2.22
pour chromedriver et je crois que le serveur Selenium pour v2.53
. Mon problème n'était pas vraiment avec le serveur Selenium, donc la v2.53 allait bien.
Issue was with chromedriver v2.22.
Eventhough ce lien chromdriver a montré qu'il y avait une dernière version de 2.24, 'webdriver-manager update'
ne prendrait PAS cette dernière version, il ne prendrait que la version 2.22 du pilote chrome.
Comment ai-je pu contourner cela?
Exécutez simplement la commande ci-dessous après avoir vérifié ce lien pour quelle version de chromedriver vous souhaitez mettre à jour; par exemple, je voulais la v2.24 alors j'ai exécuté la commande ci-dessous:
mise à jour du gestionnaire de pilotes Web --versions.chrome 2.24
Si vous vérifiez votre position: C:\Users\<USER>\AppData\Roaming\npm\node_modules\webdriver-manager\Selenium\
Vous devriez voir que le chromedriver souhaité y a été téléchargé; s'il n'est pas là, lisez la commande Invite logs et il vous dira où il a téléchargé vos fichiers chromdriver.
J'espère que cela aide quelqu'un!
J'ai eu le même problème, mais la mise à jour vers le dernier ChromeDriver (v2.8) ne l'a pas résolu pour moi. J'exécutais Selenium sur un serveur CI (une machine Dell exécutant 64 bits Win 7). J'ai eu l'exception à chaque fois que le serveur était "inactif" depuis un certain temps.
Ce qui a résolu le problème pour moi, c'était de régler "Désactiver l'affichage après" dans les options d'alimentation de Windows sur "Jamais".
Assurez-vous d'abord que vous avez mis à jour votre navigateur chrome, via l'interface du menu.
Mettez ensuite à jour ChromeDriver, ici .
Pour une raison quelconque, le pilote Chrome ne peut pas interpréter le trafic https. Si vous changez votre lien en http, cela fonctionnera bien.