web-dev-qa-db-fra.com

Sélénium: veuillez protéger les ports utilisés par ChromeDriver et les cadres de test associés pour empêcher l'accès par du code malveillant

Je suis connecté au VPN via ma machine locale et j'essaie d'exécuter un script Selenium sur le navigateur chrome, puis j'obtiens l'erreur suivante:

Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1553947986.711][WARNING]: Timed out connecting to Chrome, retrying...
[1553947990.713][WARNING]: Timed out connecting to Chrome, retrying...
[1553947998.713][WARNING]: Timed out connecting to Chrome, retrying...
[1553948014.713][WARNING]: Timed out connecting to Chrome, giving up.
[1553948016.724][WARNING]: Timed out connecting to Chrome, retrying...
[1553948020.724][WARNING]: Timed out connecting to Chrome, retrying...
[1553948028.727][WARNING]: Timed out connecting to Chrome, retrying...
[1553948044.730][WARNING]: Timed out connecting to Chrome, giving up.

Cela ne se produit que lorsque je veux exécuter le script via VPN, sans VPN, le script fonctionne correctement. Pour le navigateur Firefox, ne rencontrez pas le problème ci-dessus

4
Pritam Maske

J'étais également confronté à ce problème depuis la semaine dernière. J'ai beaucoup cherché et essayé différentes approches pour résoudre ce problème. Le code ci-dessous (pseudo-code) m'a aidé à résoudre le problème. Mon approche:

  1. Exécutez le serveur chromedriver.exe et vérifiez le numéro de port (j'ai utilisé la classe Process dans mon code) Vérifiez d'abord manuellement en suivant les étapes ci-dessous:
    • invite de commande ouverte
    • accédez au chemin où vous avez votre chromedriver
    • exécutez le chromedriver (en tapant simplement> chromedriver)
    • le serveur chromedriver commencera à fonctionner notez le numéro de port (dans mon cas 9515)
  2. Initialisez le pilote avec l'url ( http: // localhost: portNumber )
  3. Trucs habituels (maximiser, délais, naviguer vers l'URL)
  4. Écrivez votre script de test
  5. Fermez l'instance de pilote (driver.close ())
  6. Fermez l'instance de processus (process.destroy ())

    try { process = new ProcessBuilder("path of the chromedriver.exe").start(); } catch (IOException e1) { e1.printStackTrace(); } System.setProperty("webdriver.chrome.driver", "path of the chromedriver.exe"); ChromeOptions options = new ChromeOptions(); try { driver = new RemoteWebDriver(new URL("http://127.0.0.1:9515"), options); } catch (MalformedURLException e) { e.printStackTrace(); } // maximize browser // delete All Cookies // page Load Timeout // implicitly Wait // navigating to the url // run the test scripts // close the driver // close the process

J'espère que cela résoudra également votre problème. Si vous rencontrez un problème, faites-le moi savoir.

1
Shivam Vishwakarma
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--whitelist-ip *");
chromeOptions.addArguments("--proxy-server='direct://'");
chromeOptions.addArguments("--proxy-bypass-list=*");
WebDriver driver = new ChromeDriver(chromeOptions);

Vous pouvez également spécifier l'adresse IP ici.

0

La désactivation d'IPv6 a résolu ce problème pour moi. Sur macOS: networksetup -setv6off Wi-Fi

J'ai également dû supprimer ::1 localhost à partir de mon fichier d'hôtes.

0
jw1988