4
votes

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

Je suis connecté au VPN via ma machine locale et j'essaie d'exécuter un script sélénium 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 souhaite exécuter le script via VPN, sans VPN, le script fonctionne correctement. Pour le navigateur Firefox non obtenir le problème ci-dessus


8 commentaires

Utilisez-vous la grille pour votre exécution?


@supputuri: Non, nous n'utilisons pas de grille


Semble être une application de sécurité / un paramètre de pare-feu bloquant la connexion lorsque vous êtes sur VPN. Vérifiez si une application de sécurité s'exécute lorsque le VPN est connecté, essayez de la désactiver et voyez. Si cela fonctionne, contactez le groupe VPN et demandez-lui de vous aider à ouvrir la connexion au sélénium.


Non son VPN, j'ai essayé de rétrograder, de mettre à niveau, de faire correspondre la version google-chrome installée mais ne fonctionnait pas. Si c'est résolu pour vous, veuillez partager.


@paul: Bien sûr, vous le fera savoir


Une alternative ou vous vous êtes arrêté jusqu'à la mise à jour?


@paul: Pour le moment, exécuter le script sans vpn depuis un autre environnement


@paul: pouvez-vous essayer la solution ci-dessous? Actuellement je suis occupé à autre chose


3 Réponses :


0
votes
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--whitelist-ip *");
chromeOptions.addArguments("--proxy-server='direct://'");
chromeOptions.addArguments("--proxy-bypass-list=*");
WebDriver driver = new ChromeDriver(chromeOptions);
You also can specify IP address here.

1 commentaires

Merci pour la réponse ... va vérifier et vous faire savoir



1
votes

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:
    • ouvrir l'invite de commande
    • accédez au chemin où se trouve votre pilote chromé
    • exécutez 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 d'expiration, accéder à l'URL)
  4. Rédigez votre script de test
  5. Fermez l'instance du pilote (driver.close ())
  6. Fermez l'instance de processus (process.destroy ())

    essayez { process = new ProcessBuilder ("chemin du chromedriver.exe"). start (); } catch (IOException e1) { e1.printStackTrace (); } System.setProperty ("webdriver.chrome.driver", "chemin du chromedriver.exe"); Options ChromeOptions = nouvelles ChromeOptions (); essayez { driver = new RemoteWebDriver (nouvelle URL ("http://127.0.0.1:9515"), options); } catch (MalformedURLException e) { e.printStackTrace (); } // maximiser le navigateur // supprimer tous les cookies // Délai de chargement de la page // Attendre implicitement // navigation vers l'url // exécuter les scripts de test // ferme le pilote // ferme le processus

J'espère que cela résoudra également votre problème. Si vous rencontrez un problème, merci de me le faire savoir.


0 commentaires

0
votes

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

J'ai également dû supprimer :: 1 localhost de mon fichier hosts.


0 commentaires