Ao executar o WebDriver com o navegador Chrome, obter a mensagem “Somente conexões locais são permitidas”, embora o navegador seja iniciado corretamente


88

Quando executo o navegador Chrome usando o WebDriver, recebo a seguinte mensagem no console. Por favor, deixe-me saber como resolver isso.

"Iniciando ChromeDriver (v2.10.267521) na porta 22582" "Apenas conexões locais são permitidas."

Aqui está meu código de amostra:

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

Respostas:


97

Esta é apenas uma mensagem informativa. O que a mensagem está dizendo é que o executável do chromedriver só aceitará conexões da máquina local.

A maioria das implementações de driver (o driver Chrome e o driver IE com certeza) criam um servidor HTTP. Os vínculos de linguagem (Java, Python, Ruby, .NET, etc.) usam um protocolo JSON sobre HTTP para se comunicar com o driver e automatizar o navegador. Uma vez que o servidor HTTP está simplesmente ouvindo em uma porta aberta as solicitações HTTP geradas pelas ligações de linguagem, as conexões com o servidor HTTP iniciadas pelas ligações de linguagem só podem vir de outros processos no mesmo host. Observe cuidadosamente que esta limitação não se aplica a conexões que o navegador pode fazer com sites externos; em vez disso, simplesmente evita conexões de entrada de outros sites.


No meu caso, o teste pára depois de abrir o navegador e a página está vazia. No url Not secure data:, Então, nesse sentido, isso é um problema. Tens alguma ideia do porquê?
— SMPH

então se eu acessar um site que usa comunicação https com selenium usando driver.get ( etc ... ), isso significa que as informações enviadas para esse site estão criptografadas com https?
— Mike Sandstrom

A comunicação HTTP (não segura) mencionada nesta resposta é entre as ligações de linguagem (seu código Selenium em Java, C #, Python, etc.) e o driver do navegador (chromedriver, geckodriver, etc.). A comunicação entre o navegador e o site não foi alterada. Se você estiver usando HTTPS no navegador, a comunicação entre o navegador e o servidor da web ainda deve ser criptografada.
— JimEvans

Tenho o mesmo problema: / Esse problema já foi corrigido?
— user3430861

13

Eu estava recebendo exatamente os mesmos erros. Eu lutei contra esse problema por algumas horas hoje. Parecia ser causado por uma incompatibilidade entre as versões do chromedriver e do selenium-server-standalone. O arquivo config.js fazia referência a um diretório que tinha chromedriver 2.9 e selenium-server-standalone 2.35.0. Depois de me certificar de que estávamos fazendo referência a 2.10 e 2.42.2, funcionou.


13

Não necessariamente a melhor prática, mas meu ambiente era uma rede local com várias máquinas que precisavam de acesso ao selênio.

Ao executar o chromedriver, você pode passar por um parâmetro como:

chromedriver --whitelisted-ips=""

Isso irá basicamente colocar na lista de permissões todos os IPs, nem sempre uma solução ideal, é claro, e tome cuidado com isso para ambientes de produção, mas você deve receber um aviso detalhado:

Iniciando ChromeDriver 2.16.333244 (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) na porta 9515 Todas as conexões remotas são permitidas. Use uma lista de permissões!

Uma solução alternativa na melhor das hipóteses, mas funciona.

Check-in relativo


5

Isso estava acontecendo comigo quando eu tive que consertar um projeto antigo que não era olhado há algum tempo. O chromedriver associado ao projeto não era compatível com minha versão do chrome, então quando eu atualizei o chromedriver ele funcionou bem.


3

Esta é apenas uma mensagem informativa. Isso não significa nada se seus scripts de teste e chromedriver estiverem na mesma máquina, então é possível adicionar a opção "whitelisted-ips". Seu teste será executado bem. No entanto, se você usar o chromedriver em uma configuração de grade, esta mensagem não aparecerá


3
como faço para adicionar este bro - "whitelisted-ips". Estou tendo o mesmo problema
— Tanvir

2
Como adicionar o whitelist-ips. estou usando o windows. Obrigado
— garlapak de

1

Tive que executar meus comandos no mesmo terminal, não separadamente.

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

Muitas vezes, esse erro aparece se você usar versões incompatíveis do Selenium e ChromeDriver.

Selenium 3.0.1 para o projeto 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
Você deve explicar como ele pode resolver seu problema. Você apenas identifica o problema, mas como resolver isso? Quais versões são compatíveis, por exemplo?
— Sebi

1
Eu uso esta combinação: selênio-java 3.0.1 + ChromeDriver 2.27 (Ele suporta Chrome v54-56)
— Vitali Nikolaenko

1

Depois de horas de análise lendo toneladas de logs e código fonte, finalmente encontrei o problema. E é muito fácil de resolver.

em linha simples: você precisa passar --whitelisted-ips = para os executáveis ​​do driver do cromo (não do cromo!)

Você pode fazer isso de algumas maneiras:

Se você usar o ChromeDriver local / diretamente do código, basta inserir as linhas abaixo antes do init do ChromeDriver

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

Se você usá-lo remotamente (por exemplo, hub / grade de selênio), será necessário definir a propriedade do sistema quando o nó é iniciado, como no comando:

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

ou 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

O Chromedriver é um WebDriver. WebDriver é uma ferramenta de código aberto para teste automatizado de aplicativos da web em muitos navegadores. Ele fornece recursos para navegar para páginas da web, entrada do usuário, execução de JavaScript e muito mais. Quando você executa este driver, ele permite que seus scripts acessem e executem comandos no Google Chrome.

Isso pode ser feito por meio de scripts executados na rede local ( Only local connections are allowed.) ou por meio de scripts executados em redes externas ( All remote connections are allowed.). É sempre mais seguro usar a opção Conexão local. Por padrão, seu Chromedriver pode ser acessado pela porta 9515.

Para responder à pergunta, é apenas uma mensagem informativa. Você não precisa se preocupar com isso.

A seguir estão as duas opções.

$ 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.

Isso é feito pela lista de permissões de todos os IPs.

$ 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

Resolvi esse erro instalando o driver do navegador:

  1. Navegue no seu navegador para o site seleniumhq.org
  2. Selecione a guia Downloads
  3. Role a página para baixo até a seção Navegador e baixe o driver desejado clicando no link, por exemplo, Driver do Google Chrome
  4. Clique duas vezes no arquivo baixado, por exemplo, chromedriver_mac64 (1) .zip
  5. Clique duas vezes no arquivo extraído, por exemplo, chromedriver

Referência: procure o erro no YouTube.com

Plataforma: macOS High Sierra 10.13.3

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.