Webdriver Não foi possível conectar ao host 127.0.0.1 na porta 7055 após 45000 ms


138

Eu tenho caixa onde eu executo testes. Parece que Jenkins ssh e executar comandos descritos no trabalho específico que está sendo executado.

Aqui, estou tentando executar meus testes Selenium Webdriver, mas isso indica que tenho erros ao iniciar o firefox. A idéia final é executar os testes da web nessa caixa totalmente e também capturar algumas capturas de tela dos erros.

Estou usando selenium-java-2.25.jar, firefox 10, sistema operacional linux.

O engraçado é que posso inserir manualmente na caixa, copiar temporariamente o cookie mágico de outro usuário na caixa (para obter um túnel X), fazer um export DISPLAY=mydisplay:1.0e iniciar meus testes de selênio usando ant. E isso trará o firefox e os testes muito bem.

Existem vários tópicos aqui que parecem ter exatamente o mesmo problema e acho que tentei a maioria deles. Aqui está o que eu fiz:

  • Reinicie a caixa, efetue login novamente com o VNC.

  • Colocou um script bash no Jenkins para executar antes de executar testes de selênio. O script bash basicamente faz um export DISPLAY=mydisplay:1.0. Também executa xclock. Isso funciona como eu posso ver o xclock sendo exibido no VNC.

  • iptables foram desativados

  • O firefox está localizado corretamente em / usr / bin / firefox

  • sshd_config mostra ter X11Forwarding como verdadeiro.

  • Supostamente fazer o downgrade do firefox ajudou algumas pessoas, mas eu não desejo fazer isso. O Webdriver deve suportar FF 10 de qualquer maneira.

No entanto, nenhuma das opções acima resolve o problema.

Não parece que a porta 7055 no host local exista:

netstat -an | grep 7055 - Nada imprime

Isto é o que meus / etc / hosts dizem:

  1 127.0.0.1               localhost.localdomain localhost
  2 ::1             localhost6.localdomain6 localhost6

Talvez tenha algo a ver com localhost: 7055 não existe? Não tenho certeza para onde ir a partir daqui. Ainda assim, por que a saída de erro diz que está procurando display: :0.0quando eu especifiquei mydisplay:1.0?

E, finalmente, a saída de erro que recebo:

[testng] org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Error: cannot open display: :0.0
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Error: cannot open display: :0.0
[testng] 
[testng]    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:109)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:245)
[testng]    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:109)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:185)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:178)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:174)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92)
[testng]    at com.test.webtest.browser.BrowserFactory.createBrowser(BrowserFactory.java:24)
[testng]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng]    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[testng]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[testng]    at java.lang.reflect.Method.invoke(Method.java:601)

Eu reproduzi esse problema no selênio 2.31.0
Dima Star

Estou tendo esse problema com o Selenium 2.47.1 e não vejo a mensagem de que o servidor do driver do firefox foi iniciado na porta XXXX. Em vez disso, recebo uma janela em branco que é aberta e sem controle sobre o navegador, supondo que a porta não foi aberta para escutar comandos de protocolo de fio do teste.
djangofan

Parece que a combinação do servidor Selenium 2.47.1 e do Firefox 40 está boa, não funcionando com o Firefox 41 para mim.
Rostislav Matl

Se você não tiver a GUI na sua caixa e estiver executando seus testes na caixa usando o Firefox, você receberá este erro. Eu sugiro que você tente com Xvfb no driver de exibição de memória. Ou isso também pode ser um problema de compatibilidade com a versão do firefox e a selênio.
Prasanta Biswas

Respostas:


91

Não sei se você resolveu esse problema, mas acabei de resolver o mesmo problema do outro lado.

Parece que o Selenium e o Firefox têm dificuldade em conversar um com o outro - suspeito que o Firefox 'evolua' alterações em vários lançamentos, portanto a compatibilidade com versões anteriores e posteriores nem sempre é garantida e a incompatibilidade sempre gera o mesmo erro.

Meu problema começou quando mudei de FF 15 para FF 16. Executando no Ubuntu, isso acontece automaticamente magicamente, juntamente com outras atualizações, mas acredito que essa foi a mudança crítica.

O problema foi resolvido passando do Selenium 2.24.1 para o Selenium 2.25.0

Como a alteração no selênio é apenas baixar o arquivo jar e executá-lo em vez do antigo, vale a pena tentar isso como um solucionador de problemas rápido e fácil - se não ajudar, basta voltar. No seu caso, não tenho certeza de qual versão do Selenium tentar, mas acho que a 2.24 deve funcionar com o FF 10.

Outra questão que encontrei no passado é que o Firefox não seria executado como root no Ubuntu. Isso acontece se o Selenium estiver sendo executado como um serviço ou, possivelmente, se for acionado a partir de um script bash ou de uma tarefa cron. Isso pode explicar por que ele funciona para você, mas não para Jenkins.


2
Estou usando o FF 19.0 e o selenium-server-standalone-2.29.0.jar no Ubuntu. Quando executei meus testes de selênio em Jenkins, recebi o mesmo erro: org.openqa.selenium.firefox.NotConnectedException: Não foi possível conectar ao host 127.0.0.1 na porta 7055 após 45000 ms. Saída do console do Firefox: [testng] Erro: nenhuma exibição especificada [testng] Erro: nenhuma exibição especificada
Ripon Al Wasim

@RiponAlWasim Alguma sorte em resolver o problema? Estou executando o 2.31.0 e tenho o mesmo problema.
precisa

@ Pet Peller: qual é a versão do seu FF?
Ripon Al Wasim 22/03

1
Este parece ser um problema em andamento. Eu recebi esse erro com o Selenium Webdriver 2.47 e o Firefox 44. A atualização do Selenium Webdriver para a versão 2.53 foi corrigida.
B Sete

1
tl; dr - Atualize o Selenium (arquivos .jar aqui - selenium-release.storage.googleapis.com/index.html )
rinogo 9/16

14

Eu tive uma questão semelhante. Talvez essa resposta também o ajude.

Parece que você tem dois erros diferentes:

  1. Unable to connect to host 127.0.0.1 on port 7055
  2. Error: no display specified

O motivo do Unable to connecterro é que a versão do Selenium Server não sabe como trabalhar com a versão mais recente do Firefox. Você precisa baixar uma versão mais recente do Selenium Server que ofereça suporte à versão mais recente do Firefox.

O motivo do Error: no display specifiederro é que o Firefox está sendo iniciado, mas não há um servidor X (GUI) em execução no host remoto. Você pode usar o encaminhamento do X11 para executar o Firefox no host remoto, mas exibi-lo no host local. No Mac OS X, você precisará fazer o download do XQuartz para usar o encaminhamento do X11.


13

Você precisa verificar a compatibilidade do navegador antes de optar por testar o Selenium:

https://github.com/SeleniumHQ/selenium/blob/master/java/CHANGELOG

Isso pode ajudar a responder à pergunta acima.


Esse foi o problema que encontrei. E não era o navegador no meu caso. Era o sistema operacional subjacente. Estou usando o Mac OS X - Yosemite. E apenas o último selênio parece estar trabalhando com ele.
precisa

2
link está quebrado senhor
mido


6

Resolvi esse problema fazendo o downgrade do meu Firefox para uma versão anterior que funcionava bem com o Selenium-WebDriver. No meu caso, tive que voltar ao Firefox 18 e esta versão funcionou com o Selenium 2.27

Aqui está o link para obter versões mais antigas do firefox: https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/


5

Esse problema me assombra há muito tempo e eu vi uma solução que funcionava no caso do Firefox: usar o driver atualizado do firefox .

  • Se as atualizações do Firefox estiverem acontecendo automaticamente, você poderá enfrentar esse problema de vez em quando. Parece que os caras do Firefox estão se desenvolvendo rápido demais ou não se importam com a compatibilidade com versões anteriores.

  • Toda vez que vejo esse problema nos meus scripts antigos, verifico se a versão do Firefox mudou desde a maioria das vezes.

  • Então, vou ao repositório maven para o repo do driver selênio do firefox - http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver e baixo a versão mais recente.

  • ou atualize meu pom.xml (se o maven for usado) com a nova versão do driver firefox agora mesmo - 2.40.0

  • Não há uma maneira fácil de evitar esse problema, a menos que você realmente bloqueie explicitamente a atualização automatizada do firefox (você pode fazer isso (no Mac) nas preferências - Avançado - Atualização - Selecione "Verificar atualizações, mas deixe-me escolher instalá-las" )

  • Se seus scripts estiverem sendo executados em um modo automatizado, convém desativar as atualizações. No entanto, isso pode criar outros problemas. Como a maioria das pessoas / usuário pode ter as atualizações do Firefox ativadas por padrão. Portanto, seu aplicativo não está realmente sendo testado em nenhuma versão posterior.


5

Eu tinha o Firefox 47 e o Selenium 2.53 e recebi o mesmo erro. Minha solução foi mudar o Firefox 47 para o Firefox 46 , o problema foi resolvido.


4

Atualize os frascos de selênio, faça o download do selênio 2.31.0

Esse problema foi resolvido pelo pessoal do selênio

Este foi um problema de compatibilidade.

Felicidades


3

O problema com o script é que o ambiente usado para o script não é o mesmo usado para seus testes, portanto, definir as variáveis ​​de ambiente não faz nada para seus testes.

Para definir corretamente a variável, você precisa defini-la no Jenkins. Vá para Gerenciar Jenkins> Gerenciar nós> Mestre> Configurar . Marque a caixa de seleção Variáveis ​​de ambiente , digite DISPLAY na caixa de nome e defina o valor para: 1.0.

Além disso, você precisará definir permissões, tente desativar os controles de acesso ao xhost usando xhost +o terminal.


1
O "xhost +" corrigiu o meu problema, que era executar o driver da web com o sudo não abrir um navegador - agora funciona.
Nick Perkins

2

Eu também enfrentei o mesmo problema. Sempre que nós ou o webdriver se abrirem, o navegador FF verificará as atualizações, se houver. Nesse caso, tentarei atualizar durante o tempo de execução e, em seguida, você receberá o erro mesmo se ele for atualizado corretamente, apenas porque você não atualizou a versão do Selenium adequadamente.

Navegue para " http://docs.seleniumhq.org/download/ " e baixe a versão mais recente. Agora vá e verifique, o problema seria resolvido, de fato. :)


1

Eu recebi o mesmo erro; Eu usei o selenium-java versão 2.25.0 e o Firefox vresion 18.0.2; Alterei a versão do selenium-java para 2.30.0 e agora funciona.


1

Para resolver esse problema, use novos arquivos jar disponíveis em http://docs.seleniumhq.org/download/ . Como o Java, C #, php, etc. O Firefox 27.0.1 requer a versão 2.39.0 do driver.


Para mim, ele funciona com Firefox 29.0 e motorista selênio 2.39.0 demais (antes que eu tive o mesmo problema no Lubuntu 14.0.4)
Huluvu424242

1

Basta instalar o Xvnc Plugin no Jenkins. O problema deve ser resolvido.


1

Eu recebi o mesmo erro "selenium_Unable para conectar ao host 127.0.0.1 na porta 7055" Solução: usei o selenium-java-2.48.2 com o Firefox versão 43.0.1 e agora está funcionando bem.


1

Eu também tive o mesmo problema, mas o problema foi resolvido após o downgrade da versão do firefox para 35.0.1 e minha versão do selenium é 2.43


1

Eu tive exatamente o mesmo problema ao executar o Docker, mas encontrei a solução no log anterior ao erro mencionado.

selenium_1  | 2016-11-11 11:19:34,498 DEBG 'xvfb' stderr output:
selenium_1  | (EE)
selenium_1  | Fatal server error:
selenium_1  | (EE) Server is already active for display 99
selenium_1  |   If this server is no longer running, remove /tmp/.X99-lock
selenium_1  |   and start again.
selenium_1  | (EE)

Eu segui os conselhos e o problema foi resolvido.


0

É assim que se comporta quando eu uso a propriedade estática do IWebDriver e a chamo de vários métodos de teste.

public class LanguageMenu
{
    private static IWebDriver drv;

    static LanguageMenu()
    {
       drv = Driver.Instance;
    }
    ...

    public static void English()
    {
        drv.FindElement(By.Id("mvc_lang_en"));
        el.Click();
    }

    public static void Rusian()
    {
        ...
    }

    ...
}

Gostar

 [TestMethod]
 public void Language_SwitchTo_English()
 {
     LanguageMenu.English();
     Assert.IsTrue(ContactPage.IsAt("Contact"));
 }

 [TestMethod]
 public void Language_SwitchTo_Rusian()
 {
     LanguageMenu.English();
     Assert.IsTrue(ContactPage.IsAt("Контакт"));
 }

Solução

Para cada método de teste de chamada, crie uma nova instância do Driver

 private static void English()
 {
            var drv = Driver.Instance;
            var el = drv.FindElement(By.Id("mvc_lang_en"));
            el.Click();
 }

0

Atualize os frascos de selênio se nosso script de selênio não estiver em execução. Atualmente, estou usando selenium-java-2.43.0-srcs

Agora está funcionando bem


0

Isso acontece em diferentes versões do ff. Estou usando a versão mais recente da ff 39 usando selenium-server-standalone-2.41.0.jar e selenium-java-2.41.0.zip que mostra o mesmo erro.

Obtenha aqui os arquivos jar do servidor e cliente mais recentes para obter a compatibilidade que usei nas versões 2.47.0 e 2.47.1 do servidor e do cliente, respectivamente. And Boom! Funcionou.


0

Isso acontece por causa das versões antigas. Basta atualizar o navegador para a versão mais recente e atualizar o pacote selenium webdriver para a versão mais recente.


0

Apenas reinicie o terminal. Terminal está pendurado mais nada. Tudo vai funcionar bem depois disso


0

Adicionando à base de conhecimento. Tivemos o mesmo problema no Bamboo. O problema foi resolvido usando as propriedades ambientais no bambu.

DISPLAY=":1"

A adição do valor como propriedades do sistema no pom.xml ou na linha de comandos não funcionou.


0

No Windows: verifique também a "descrição" do seu Firefox. O Firefox 43.0.1 64bit não funciona com o Selenium 2.50.0. Trabalhando bem com o Firefox 43.0.1 32bit ...


0

Eu também fiquei preso nesse erro por três dias e finalmente entendi. Você pode ver a resposta que eu dei aqui . Este é um problema de compatibilidade do navegador e do selênio. Espero que isso ajude. Você pode verificar a compatibilidade do navegador neste link


0

Eu tive o mesmo problema hoje. Para corrigir, desclassifiquei a versão 51 para 47 do firefox e está funcionando.

Nota: Estou usando um Linux Ubuntu Mate, em uma Caixa Virtual, com o host sendo outro Ubuntu Mate. Todos os sistemas operacionais são de 64 bits e o Firefox também.



0

Eu tive o mesmo problema com o Firefox 38.

Depois de usar as seguintes dependências de versão, eu poderia resolver o problema.

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.0</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>2.53.0</version>
    </dependency> 

0

Eu acho que isso pode ser um problema de exibição. Se você não tiver uma GUI na caixa, o lançamento do firefox a partir do selenium webdriver causaria esse erro.

Para resolver isso, primeiro instale o Xvfb [ yum install Xvfb -y] (um driver de vídeo virtual) na caixa. Em seguida, execute seu teste de jenkins com xvfv-run -a -d <your test execution command>. Isso iniciará o navegador em um buffer de exibição virtual. Também é capaz de obter capturas de tela usando o selenium webdriver.


-1

Solução -

1) Atualize o seu servidor Selenium, ou seja, jar de selênio "selenium-server-standalone-2.xx.x.JAR" PARA "selenium-server-standalone-2.45.0.JAR"

2) Atualize seu driver do Selenium Client, ou seja, pasta libs selenium "selenium-java-2.xx.x" TO "selenium-java-2.45.0"

3) Verifique e instale a versão compatível do Firefox

Consulte - Faça o download de selenium libs e jar atualizados, versão 2.45.0

Isso vai resolver o seu problema .. Cheers !!

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.