Quando si esegue WebDriver con il browser Chrome, viene visualizzato il messaggio "Sono consentite solo connessioni locali" anche se il browser viene avviato correttamente


88

Quando eseguo il browser Chrome utilizzando WebDriver, ricevo il seguente messaggio sulla console. Per favore fatemi sapere come risolverlo.

"Avvio di ChromeDriver (v2.10.267521) sulla porta 22582" "Sono consentite solo connessioni locali."

Ecco il mio codice di esempio:

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();
    }
}

Risposte:


97

Questo è solo un messaggio informativo. Ciò che il messaggio ti dice è che l'eseguibile di chromedriver accetterà solo connessioni dalla macchina locale.

La maggior parte delle implementazioni dei driver (il driver Chrome e il driver IE di sicuro) creano un server HTTP. I collegamenti del linguaggio (Java, Python, Ruby, .NET, ecc.) Utilizzano tutti un protocollo JSON-over-HTTP per comunicare con il driver e automatizzare il browser. Poiché il server HTTP è semplicemente in ascolto su una porta aperta per le richieste HTTP generate dai collegamenti della lingua, le connessioni al server HTTP avviate dai collegamenti della lingua possono provenire solo da altri processi sullo stesso host. Notare attentamente che questa limitazione non si applica alle connessioni che il browser può effettuare a siti web esterni; piuttosto semplicemente impedisce le connessioni in entrata da altri siti web.


Nel mio caso il test si interrompe dopo aver aperto il browser e la pagina è vuota. Nell'URL Not secure data:, Quindi, in questo senso, questo è un problema. Hai idea del perché?
SMPH

quindi se accedo a un sito Web che utilizza la comunicazione https con selenio utilizzando driver.get ( ecc ... ) significa che le informazioni inviate a quel sito sono crittografate con https?
Mike Sandstrom

La comunicazione HTTP (non protetta) a cui si fa riferimento in questa risposta è tra i collegamenti del linguaggio (il codice Selenium in Java, C #, Python, ecc.) E il driver del browser (chromedriver, geckodriver, ecc.). La comunicazione tra il browser e il sito web rimane invariata. Se stai utilizzando HTTPS nel browser, la comunicazione tra il browser e il server web dovrebbe essere comunque crittografata.
JimEvans

Ho lo stesso problema: / Questo problema è mai stato risolto?
user3430861

13

Stavo ottenendo gli stessi identici errori. Ho affrontato questo problema per alcune ore oggi. Sembrava essere causato da una mancata corrispondenza tra le versioni di chromedriver e selenio-server-standalone. Il file config.js faceva riferimento a una directory che aveva chromedriver 2.9 e selenium-server-standalone 2.35.0. Dopo essermi assicurato che stavamo facendo riferimento a 2.10 e 2.42.2, ha funzionato.


13

Non necessariamente la migliore pratica, ma il mio ambiente era una rete locale con diverse macchine che necessitavano di accesso al selenio.

Quando esegui il chromedriver, puoi passare attraverso un parametro in questo modo:

chromedriver --whitelisted-ips=""

Questo fondamentalmente inserirà nella whitelist tutti gli IP, non sempre una soluzione ideale ovviamente e si presterà attenzione per gli ambienti di produzione, ma dovrebbe essere presentato un avviso dettagliato:

Avvio di ChromeDriver 2.16.333244 (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) sulla porta 9515 Tutte le connessioni remote sono consentite. Usa invece una whitelist!

Una soluzione migliore, ma funziona.

Check-in relativo


5

Questo mi stava succedendo quando ho dovuto sistemare un vecchio progetto che non si guardava da tempo. Il chromeedriver associato al progetto non era compatibile con la mia versione di chrome, quindi quando ho aggiornato il chromedriver ha funzionato bene.


3

Questo è solo un messaggio informativo. Non significa nulla se i tuoi script di test e chromedriver sono sulla stessa macchina, allora è possibile aggiungere l'opzione "whitelisted-ips". Il tuo test andrà bene. Tuttavia, se utilizzi chromedriver in una configurazione a griglia, questo messaggio non verrà visualizzato


3
come aggiungo questo fratello - "ips autorizzati". Ho lo stesso problema
Tanvir

2
Come aggiungere il file whitelist-ips. sto usando Windows. Grazie
garlapak

1

Ho dovuto eseguire i miei comandi nello stesso terminale, non separatamente.

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"

1

Molto spesso questo errore viene visualizzato se si utilizzano versioni incompatibili di Selenium e ChromeDriver.

Selenium 3.0.1 per il progetto 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


1
Dovresti spiegare come può risolvere il suo problema. Hai appena identificato il problema, ma come risolverlo? Quali versioni sono compatibili, ad esempio?
Sebi

1
Uso questa combinazione: selenium-java 3.0.1 + ChromeDriver 2.27 (Supporta Chrome v54-56)
Vitali Nikolaenko

1

Dopo ore di analisi leggendo tonnellate di log e codice sorgente, finalmente abbiamo trovato il problema. Ed è abbastanza facile risolverlo.

in una sola riga: devi passare --whitelisted-ips = agli eseguibili del driver chrome (non chrome!)

Puoi farlo in diversi modi:

Se utilizzi ChromeDriver localmente / direttamente dal codice, inserisci le righe di seguito prima di ChromeDriver init

    System.setProperty("webdriver.chrome.whitelistedIps", "");

Se lo usi da remoto (es. Selenium hub / grid) devi impostare la proprietà di sistema all'avvio del nodo, come nel comando:

java -Dwebdriver.chrome.whitelistedIps= testClass etc...

o docker passando JAVA_OPTSenv

  chrome:
    image: selenium/node-chrome:3.141.59
    container_name: chrome
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
      - JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=

0

Chromedriver è un WebDriver. WebDriver è uno strumento open source per il test automatizzato di app Web su molti browser. Fornisce funzionalità per la navigazione a pagine Web, input dell'utente, esecuzione di JavaScript e altro. Quando esegui questo driver, consentirà ai tuoi script di accedervi ed eseguire comandi su Google Chrome.

Questo può essere fatto tramite script in esecuzione nella rete locale ( Only local connections are allowed.) o tramite script in esecuzione su reti esterne ( All remote connections are allowed.). È sempre più sicuro utilizzare l'opzione Connessione locale. Per impostazione predefinita, il tuo Chromedriver è accessibile tramite porta9515 .

Per rispondere alla domanda, è solo un messaggio informativo. Non devi preoccuparti di questo.

Di seguito sono riportate entrambe le opzioni.

$ chromedriver

Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

Questo avviene inserendo nella whitelist tutti gli IP.

$ chromedriver --whitelisted-ips=""

Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
All remote connections are allowed. Use a whitelist instead!
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

-4

Ho risolto questo errore installando il driver del browser:

  1. Naviga con il tuo browser sul sito web seleniumhq.org
  2. Seleziona la scheda Download
  3. Scorri la pagina verso il basso fino alla sezione Browser e scarica il driver desiderato facendo clic sul collegamento, ad esempio, Google Chrome Driver
  4. Fare doppio clic sul file scaricato, ad esempio, chromedriver_mac64 (1) .zip
  5. Fare doppio clic sul file estratto, ad esempio, chromedriver

Riferimento: cerca l'errore su YouTube.com

Piattaforma: macOS High Sierra 10.13.3

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.