J'essaie de configurer Nightwatch , et j'utilise le dernier chromedriver qui le dit prend en charge chrome v52-54 . MAIS, lorsque j'essaie d'exécuter les tests, il est indiqué 'Error: Chrome version must be >=52.0.2743.'
Voici tout ce que j'utilise:
Structure du projet
|-- nightwatch.json
|-- bin/
| |-- chromedriver
| |-- Selenium-server-standalone-2.53.1.jar
|-- tests/
| |-- sample.js
|-- results/
|-- screens/
|-- node_modules/
| |-- (lots of modules here)
Et voici mon fichier de configuration pour nightwatch:
./ nightwatch.json
{
"src_folders" : ["tests"],
"output_folder" : "results",
"custom_commands_path" : "",
"custom_assertions_path" : "",
"page_objects_path" : "",
"globals_path" : "",
"Selenium" : {
"start_process" : true,
"server_path" : "bin/Selenium-server-standalone-2.53.1.jar",
"log_path" : "results",
"Host" : "127.0.0.1",
"port" : 4444,
"cli_args" : {
"webdriver.chrome.driver" : "bin/chromedriver"
}
},
"test_settings" : {
"default" : {
"launch_url" : "http://localhost",
"Selenium_port" : 4444,
"Selenium_Host" : "localhost",
"silent": true,
"screenshots" : {
"enabled" : true,
"path" : "screens/"
},
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptSslCerts": true
}
},
"chrome" : {
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptSslCerts": true
}
}
}
}
Exécution de tests
Je lance les tests comme ceci:
nightwatch tests/
Erreur
Et j'obtiens la sortie suivante:
Starting Selenium server... started - PID: 3500
[Sample] Test Suite
=======================
Running: Demo test Google
Error retrieving a new session from the Selenium server
Connection refused! Is Selenium server started?
{ sessionId: null,
status: 13,
state: 'unhandled error',
value:
{ message: 'unknown error: Chrome version must be >= 52.0.2743.0\n (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 3.2.0-56-generic x86_64) (WARNING: The server did not provide any stacktrace information)\nCommand duration or timeout: 1.42 seconds\nBuild info: version: \'2.53.1\', revision: \'a36b8b1\', time: \'2016-06-30 17:37:03\'\nSystem info: Host: \'N/A\', ip: \'N/A\', os.name: \'Linux\', os.Arch: \'AMD64\', os.version: \'3.2.0-56-generic\', Java.version: \'1.7.0_111\'\nDriver info: org.openqa.Selenium.chrome.ChromeDriver',
suppressed: [],
localizedMessage: 'unknown error: Chrome version must be >= 52.0.2743.0\n (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 3.2.0-56-generic x86_64) (WARNING: The server did not provide any stacktrace information)\nCommand duration or timeout: 1.42 seconds\nBuild info: version: \'2.53.1\', revision: \'a36b8b1\', time: \'2016-06-30 17:37:03\'\nSystem info: Host: \'N/A\', ip: \'N/A\', os.name: \'Linux\', os.Arch: \'AMD64\', os.version: \'3.2.0-56-generic\', Java.version: \'1.7.0_111\'\nDriver info: org.openqa.Selenium.chrome.ChromeDriver',
buildInformation:
{ releaseLabel: '2.53.1',
buildTime: '2016-06-30 17:37:03',
class: 'org.openqa.Selenium.internal.BuildInfo',
buildRevision: 'a36b8b1',
hCode: 1900167016 },
cause: null,
systemInformation: 'System info: Host: \'N/A\', ip: \'N/A\', os.name: \'Linux\', os.Arch: \'AMD64\', os.version: \'3.2.0-56-generic\', Java.version: \'1.7.0_111\'',
supportUrl: null,
class: 'org.openqa.Selenium.WebDriverException',
additionalInformation: '\nDriver info: org.openqa.Selenium.chrome.ChromeDriver',
hCode: 1299270263,
screen: null },
class: 'org.openqa.Selenium.remote.Response',
hCode: 1144687147 }
Quelqu'un sait comment résoudre cette erreur?
Chrome version must be >= 52.0.2743.0
Est-ce que chromedriver utilise ma copie locale de chrome? Dois-je mettre à jour mon chrome actuel?
Est-ce que chromedriver utilise ma copie locale de chrome? Dois-je mettre à jour mon chrome actuel?
Oui, ChromeDriver
est un exécutable que le webdriver Selenium utilise pour contrôler le chrome.
Donc, le sélecteur Web Selenium lance votre chrome depuis votre emplacement par défaut ou votre emplacement personnalisé que vous indiquez au sélecteur Web Selenium lors de l'initialisation ChromeDriver
.
Donc, en gros ChromeDriver
exécutable, utilisez simplement pour parler entre chrome et sélecteur Web Selenium pour le contrôler, cela ne signifie pas qu'il lance leur propre chrome. Il utilise votre navigateur chrome.
Alors oui, vous devez mettre à jour votre chrome réel installé.
Oui, ChromeDriver utilise votre installation locale Chrome. Si vous préférez ne pas mettre à niveau votre installation Chrome, vous pouvez spécifier une version de ChromeDriver qui fonctionnerait avec le installé Chrome version.
Vous pouvez trouver les versions compatibles Chrome pour les différentes versions de ChromeDriver sur https://chromedriver.storage.googleapis.com/2.25/notes.txt (changer "2.25" vers une version plus récente si votre Chrome est plus récente que celle qui y est répertoriée).
Si votre framework de test utilise Node.js webdriver-manager
, vous pouvez simplement installer la version requise de ChromeDriver (en conservant toutes les versions déjà installées) en utilisant (par exemple pour la version 2.20
):
webdriver-manager update --chrome --versions.chrome=2.20
et spécifiez la version appropriée de ChromeDriver lors du démarrage de Selenium via webdriver-manager
:
webdriver-manager start --versions.chrome=2.20
Si webdriver-manager
n'est pas disponible, vous pouvez simplement télécharger la version requise de ChromeDriver et utiliser une certaine technique pour passer le paramètre suivant à la commande de démarrage du serveur Selenium:
-Dwebdriver.chrome.driver=/path/to/the/desired/chromedriver_version
Si vous utilisez Ubuntu 16.04, ce code fonctionne:
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | Sudo apt-key add -
x64
Sudo sh -c 'echo "deb [Arch=AMD64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
x32
Sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
Installation/mise à jour
Sudo apt-get update
Sudo apt-get install google-chrome-stable