Je suis arrivé au bureau hier matin pour constater que mes tests Capybara ne pouvaient pas interagir avec Chrome. je regarde
Selenium::WebDriver::Error::UnknownError: unknown error: unable to discover open pages
La recherche sur Google a révélé que cela était probablement dû à un chromedriver
ou Selenium-webdriver
Obsolète, ce qui semblait très plausible, car aucun n'avait été mis à jour depuis longtemps (je pense que chromedriver
était à 2.2
et Selenium-webdriver
à 2.35.1
), et depuis Chrome mise à jour automatique vers 32.0.1700.77
le Le 14 janvier, cela m'a semblé une bonne preuve solide.
J'ai donc mis à jour Selenium-webdriver
En 2.39.0
. Déterminer quelle version de chromedriver
que j'utilisais s'est avérée plus difficile. J'avais une version de chromedriver
dans mon répertoire Téléchargements à laquelle je pensais auquel mon code faisait référence, mais je ne trouvais pas mon répertoire Téléchargements dans le PATH
(J'utilise OS X d'ailleurs). J'ai essayé de remplacer ce fichier par la version 2.8
De ici , mais cela n'a eu aucun effet. Je suis devenu sceptique sur le fait que la version de mon répertoire Téléchargements était la version qui était utilisée en premier lieu, j'ai donc utilisé brew pour l'installer. brew info chromedriver
Donne maintenant:
chromedriver: stable 2.8
http://code.google.com/p/chromedriver/
/usr/local/Cellar/chromedriver/2.8 (2 files, 21M) *
Built from source
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/chromedriver.rb
Cela semble bon. Mon PATH
contient /usr/local/bin
, Qui a un lien chromedriver
vers l'emplacement d'installation installé. Pour autant que je le comprenne, cela devrait permettre à mon automatisation de détecter et de lancer le chromedriver
.
Malheureusement, mon problème n'est toujours pas résolu. Je reste unable to discover pages
. Quelqu'un peut-il confirmer que j'ai fait ce que l'on fait normalement pour configurer le chromedriver
?
Question secondaire: Après avoir téléchargé chromedriver 2.8
Directement et l'avoir également installé avec brew
, j'ai essayé de lancer la version téléchargée et la version brew
séparément pour confirmer que l'une ou l'autre version a pu démarrer correctement. Je suis certain qu'ils sont tous les deux en fait la version 2.8
, Mais quand je lance l'un ou l'autre, la console dit:
Starting ChromeDriver (v2.2) on port 9515
Est-ce normal? Je ne m'attendais certainement pas à ce qu'il dise v2.2
, Mais il n'y a pas d'autre version que 2.8
Installée par brew (donc je doute que brew
utilise accidentellement l'ancienne version) , et lorsque j'exécute le fichier que j'ai téléchargé directement, je suis sûr que c'est la version 2.8
du site Web de Chromedriver. Est-ce un oubli de leur part ou v2.2
Fait-il référence à autre chose, aussi improbable que cela puisse paraître?
Il serait difficile de vérifier la version du pilote chrome fréquemment lorsque vous le téléchargez avec homebrew
. Je suggère de télécharger le pilote et de le conserver dans un dossier mappé dans votre PATH.
Pour que la maintenance ou l'identification de la version du pilote soit facile avec les étapes ci-dessous:
chromeDriver -v
ChromeDriver est à la version 2.16 maintenant . Je recommanderais de mettre à jour manuellement votre pilote au lieu de mettre à jour avec n'importe quelle version plus ancienne que homebrew veut vous mettre à jour.
Vous pouvez utiliser la ligne de commande: pip freeze
pour répertorier tous les packages que vous avez installés avec leur version. Ou vous pouvez également utiliser pip show <package name>
pour vérifier les détails du package, qui inclut également la version du package.