Lorsque j'exécute le navigateur Chrome avec WebDriver, le message suivant s'affiche sur la console. S'il vous plaît laissez-moi savoir comment le résoudre.
"Démarrage de ChromeDriver (v2.10.267521) sur le port 22582" "Seules les connexions locales Sont autorisées."
Voici mon exemple de code:
public class Browserlaunch {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32 \\chromedriver.exe");
WebDriver driver = new ChromeDriver() ;
driver.get("http://webdunia.com");
driver.close();
driver.quit();
}
}
Il s'agit d'un message d'information uniquement. Le message vous dit que l'exécutable chromedriver n'accepte que les connexions de la machine locale.
La plupart des implémentations de pilotes (le pilote Chrome et le pilote IE bien sûr) créent un serveur HTTP. Les liaisons de langage (Java, Python, Ruby, .NET, etc.) utilisent toutes un protocole JSON sur HTTP pour communiquer avec le pilote et automatiser le navigateur. Comme le serveur HTTP écoute simplement sur un port ouvert les requêtes HTTP générées par les liaisons de langue, les connexions au serveur HTTP démarrées par les liaisons de langue ne peuvent provenir que d'autres processus du même hôte. Notez bien que cette limitation ne s’applique pas aux connexions que browser peut établir avec des sites Web externes; cela empêche simplement les connexions entrantes depuis d'autres sites Web.
Je recevais exactement les mêmes erreurs. J'ai lutté contre ce problème pendant quelques heures aujourd'hui. Cela semblait être dû à un décalage entre les versions de chromedriver et de Selenium-server-standalone. Le fichier config.js faisait référence à un répertoire contenant chromedriver 2.9 et Selenium-server-standalone 2.35.0. Une fois que je me suis assuré que nous faisions référence aux versions 2.10 et 2.42.2, cela a fonctionné.
Ce n’est pas nécessairement la meilleure pratique, mais mon environnement était un réseau local avec plusieurs machines nécessitant un accès à Selenium.
Lors de l’exécution du chromedriver, vous pouvez passer par un paramètre comme suit:
chromedriver --whitelisted-ips=""
Ce sera essentiellement la liste blanche de tous les IP, pas toujours une solution idéale et soyez prudent avec cela pour les environnements de production, mais vous devriez être présenté avec un avertissement verbeux:
Démarrage de ChromeDriver 2.16.333244 (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) sur le port 9515 Tous les ports distants les connexions sont autorisées. Utilisez plutôt une liste blanche!
Un contournement au mieux, mais ça marche.
Cela m’arrivait quand je devais réparer un vieux projet qui n’avait pas été examiné depuis un moment. Le chromedriver associé au projet n’était pas compatible avec ma version de chrome. Ainsi, lorsque j’ai mis à jour le chromedriver, cela fonctionnait bien.
Très souvent, cette erreur apparaît si vous utilisez des versions incompatibles de Selenium et de ChromeDriver.
Selenium 3.0.1 pour le projet Maven:
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>3.0.1</version>
</dependency>
ChromeDriver 2.27: https://sites.google.com/a/chromium.org/chromedriver/downloads
Il s'agit d'un message d'information uniquement. Cela ne signifie rien si vos scripts de test et chromedriver sont sur la même machine, il est donc possible d'ajouter l'option "liste blanche". Votre test se déroulera correctement. Cependant, si vous utilisez chromedriver dans une configuration de grille, ce message
J'ai résolu cette erreur en installant le pilote du navigateur:
Référence: recherchez l'erreur sur YouTube.com
Plate-forme: macOS High Sierra 10.13.3
Je devais exécuter mes commandes dans le un et même terminal, pas séparément.
Nohup Sudo Xvfb :10 -ac
export DISPLAY=:10
Java -jar vendor/se/Selenium-server-standalone/bin/Selenium-server-standalone.jar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver"