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

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.

JimEvans
fonte
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.

newToSeleniumMate
fonte
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

Pogrindis
fonte
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.

Cawmag
fonte
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á

Vicky
fonte
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"
Harry Bosh
fonte
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

Vitali Nikolaenko
fonte
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=
GetoX
fonte
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.
Keet Sugathadasa
fonte
-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

Galo Vermelho
fonte