웹 드라이버 45000ms 후에 포트 7055에서 호스트 127.0.0.1에 연결할 수 없습니다


138

테스트를 실행하는 상자가 있습니다. Jenkins가 실행중인 특정 작업에 설명 된 명령을 ssh하고 실행하는 것처럼 보입니다.

여기에서 Selenium Webdriver 테스트를 실행하려고하는데 파이어 폭스를 시작하는 데 오류가 있음을 알려줍니다. 최종 아이디어는이 상자에서 웹 테스트를 완전히 실행하고 오류의 스크린 샷을 만드는 것입니다.

selenium-java-2.25.jar, firefox 10, Linux OS를 사용하고 있습니다.

재미있는 점은 상자에 수동으로 ssh를 넣고 상자에있는 다른 사용자의 마술 쿠키를 일시적으로 복사하고 (X 터널을 얻기 위해)을 수행 한 export DISPLAY=mydisplay:1.0다음 개미를 사용하여 셀레늄 테스트를 시작할 수 있다는 것입니다. 그리고 이것은 파이어 폭스와 테스트를 올릴 것입니다.

여기에 똑같은 문제가있는 것으로 보이는 다양한 스레드가 있으며 대부분의 시도를 한 것 같습니다. 다음은 내가 한 일입니다.

  • 상자를 재부팅하고 VNC로 다시 로그인하십시오.

  • 셀레늄 테스트를 실행하기 전에 Jenkins에서 bash 스크립트를 실행했습니다. bash 스크립트는 기본적으로 export DISPLAY=mydisplay:1.0. 또한 실행 xclock됩니다. 이것은 VNC에 xclock이 표시되는 것을 볼 때 작동합니다.

  • iptables가 꺼져 있습니다

  • firefox가 / usr / bin / firefox에 올바르게 있습니다.

  • sshd_config는 X11Forwarding이 true로 표시됩니다.

  • 아마도 파이어 폭스를 다운 그레이드하면 일부 사람들이 도움이되었지만 나는 이것을하고 싶지 않습니다. 웹 드라이버는 어쨌든 FF 10을 지원해야합니다.

그러나 위의 어느 것도 문제를 해결하지 못합니다.

localhost의 포트 7055가 존재하지 않는 것 같습니다.

netstat -an | grep 7055 -아무것도 인쇄하지 않습니다

이것은 내 / etc / hosts가 말하는 것입니다.

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

아마도 localhost : 7055와 관련이 있습니까? 여기서 어디로 가야할지 모르겠습니다. 여전히, 왜 오류 출력에 display: :0.0내가 지정한 시점을 찾고 있다고 표시 mydisplay:1.0합니까?

그리고 마지막으로 내가받은 오류 출력 :

[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)

이 문제를 셀레늄 2.31.0
Dima Star

Selenium 2.47.1 에서이 문제가 발생하여 firefox 드라이버 서버가 XXXX 포트에서 시작되었다는 메시지가 표시되지 않습니다. 대신 테스트에서 유선 프로토콜 명령을 수신하기 위해 포트가 열리지 않기 때문에 브라우저가 열리지 않고 빈 창이 나타납니다.
djangofan

Selenium 서버 2.47.1과 Firefox 40의 조합은 괜찮으며 Firefox 41과는 작동하지 않습니다.
Rostislav Matl

상자에 GUI가없고 firefox를 사용하여 상자에서 테스트를 실행중인 경우이 오류가 발생합니다. 메모리 디스플레이 드라이버에서 Xvfb를 사용해보십시오. 또는 이것은 파이어 폭스 버전과 셀레늄 버전 호환성 문제 일 수도 있습니다.
Prasanta Biswas

답변:


91

이 문제를 해결했는지 모르겠지만 다른 쪽에서도 동일한 문제를 해결했습니다.

Selenium과 Firefox가 서로 대화하는 데 어려움이있는 것 같습니다. 여러 릴리스에서 Firefox의 '진화'변경 사항이 의심되므로 이전 버전과의 호환성이 항상 보장되는 것은 아니며 호환성이 항상 동일한 오류를 생성하는 것 같습니다.

내 문제는 FF 15에서 FF 16으로 옮길 때 시작되었습니다. 우분투에서 실행하면 다른 업그레이드와 함께 자동으로 발생하지만 이것이 중요한 변화라고 생각합니다.

이 문제는 Selenium 2.24.1에서 Selenium 2.25.0으로 이동하여 해결되었습니다.

셀레늄 변경은 jar 파일을 다운로드하여 이전 파일 대신 실행하므로 빠르고 쉬운 문제 해결사로 시도해 보는 것이 좋습니다. 도움이되지 않으면 다시 전환하십시오. 귀하의 경우, 어떤 버전의 Selenium을 시험해 볼지 잘 모르겠지만 2.24는 FF 10에서 작동해야한다고 생각합니다.

내가 과거에 발견 한 또 다른 문제는 Firefox가 우분투에서 루트로 실행되지 않는다는 것입니다. 이는 Selenium이 서비스로 실행 중이거나 bash 스크립트 또는 cron 작업에서 실행 된 경우에 발생합니다. 이것은 Jenkins가 아닌 왜 당신을 위해 작동하는지 설명 할 수 있습니다.


2
우분투에서 FF 19.0 및 selenium-server-standalone-2.29.0.jar을 사용하고 있습니다. Jenkins에서 셀레늄 테스트를 실행할 때 같은 오류가 발생했습니다. org.openqa.selenium.firefox.NotConnectedException : 45000ms 후에 포트 7055에서 호스트 127.0.0.1에 연결할 수 없습니다. 파이어 폭스 콘솔 출력 : [TestNG를] 오류 : [TestNG를] 오류를 지정하지 표시 : 지정된 표시 없음
리폰 알 Wasim

@RiponAlWasim 문제를 해결하는 데 행운이 있습니까? 2.31.0을 실행 중이며 동일한 문제가 있습니다.
Petr Peller

@Petr Peller : FF의 버전은 무엇입니까?
Ripon Al Wasim

1
이것은 지속적인 문제인 것 같습니다. Selenium Webdriver 2.47 및 Firefox 44에서이 오류가 발생했습니다. Selenium Webdriver를 2.53으로 업데이트하면 문제가 해결되었습니다.
B 세븐

1
TL; DR - 업그레이드 셀레늄 (여기 jar 파일 - selenium-release.storage.googleapis.com/index.html )
rinogo

14

나는 비슷한 문제가 있었다. 이 답변이 도움이 될 것입니다.

두 가지 다른 오류가 발생하는 것 같습니다.

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

Unable to connect오류 의 이유 는 Selenium 서버 버전이 최신 버전의 Firefox에서 작동하는 방법을 모르기 때문입니다. 최신 버전의 Firefox를 지원하는 최신 버전의 Selenium 서버를 다운로드해야합니다.

Error: no display specified오류가 발생한 이유 는 Firefox가 시작되고 있지만 원격 호스트에서 X 서버 (GUI)가 실행되지 않기 때문입니다. X11 전달을 사용하여 원격 호스트에서 Firefox를 실행할 수 있지만 로컬 호스트에는 Firefox를 표시 할 수 있습니다. Mac OS X에서는 X11 전달을 사용하려면 XQuartz 를 다운로드해야합니다 .


13

Selenium으로 테스트하기 전에 브라우저 호환성을 확인해야합니다.

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

위의 질문에 대답하는 데 도움이 될 수 있습니다.


이것이 내가 겪은 문제였습니다. 그리고 제 경우에는 브라우저가 아니 었습니다. 기본 OS였습니다. Mac OS X-Yosemite를 사용하고 있습니다. 그리고 최신 셀레늄만이 작동하는 것 같습니다.
Ajit S

2
링크가 끊어졌습니다
mido


6

Firefox를 이전에 Selenium-WebDriver와 잘 작동했던 이전 버전으로 다운 그레이드하여이 문제를 해결했습니다. 필자의 경우 Firefox 18로 다시 다운 그레이드해야했으며이 버전은 Selenium 2.27과 호환되었습니다.

이전 버전의 firefox를 가져 오는 링크는 다음과 같습니다. https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/


5

이 문제는 오랫동안 저를 괴롭 혔으며 Firefox의 경우 업그레이드 된 firefox 드라이버사용하는 것이 효과적이었습니다 .

  • 귀하의 경우, 파이어 폭스 업그레이드가 자동으로 일어나고있는 당신은 가끔이 문제를 직면 할 수있는보다. Firefox 사용자가 너무 빨리 개발하거나 이전 버전과의 호환성에 관심이없는 것 같습니다.

  • 이전 스크립트 에서이 문제를 볼 때마다 파이어 폭스 버전이 변경되었는지 확인합니다. 대부분의 경우입니다.

  • 그럼 난 셀레늄 파이어 폭스 드라이버의 repo에 대한 받는다는의 repo로 이동 - http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver을 최신 버전을 다운로드합니다.

  • 또는 현재 pom.xml (maven을 사용하는 경우)을 새 버전의 firefox 드라이버로 업데이트하십시오-2.40.0

  • Firefox에서 자동 업데이트를 명시 적으로 차단하지 않으면이 문제를 피할 수있는 쉬운 방법이 없습니다 (환경 설정-고급-업데이트- "업데이트 확인, 설치 여부 선택"에서이 작업을 수행 할 수 있습니다 (Mac의 경우)). )

  • 스크립트가 자동화 모드에서 실행중인 경우 업데이트를 비활성화 할 수 있습니다. 그러나 이로 인해 다른 문제가 발생할 수 있습니다. 대부분의 사용자 / 사용자는 기본적으로 Firefox 업데이트를 사용하도록 설정했을 수 있습니다. 따라서 응용 프로그램은 이후 버전에서 실제로 테스트되지 않습니다.


5

Firefox 47Selenium 2.53 이 있었는데 같은 오류가 발생했습니다. 내 솔루션은 Firefox 47을 Firefox 46 으로 변경 하고 문제가 해결되었습니다.


4

셀레늄 항아리 업데이트, 셀레늄 2.31.0 다운로드

이 문제는 셀레늄 전문가들에 의해 해결되었습니다

호환성 문제였습니다.

건배


3

스크립트의 문제점은 스크립트에 사용 된 환경이 테스트에 사용 된 환경과 동일하지 않으므로 환경 변수를 설정하면 테스트에 아무런 영향을 미치지 않습니다.

변수를 올바르게 설정하려면 Jenkins에서 변수를 설정해야합니다. 이동 노드> 마스터> 구성을> 젠킨스 관리 관리 . 체크 변수는 환경 확인란을 누른 다음 이름 상자에 디스플레이를 입력하고 값을 1로 설정 : 1.0.

또한 권한을 설정 xhost +하고 터미널에서 사용하여 xhost 액세스 제어를 비활성화하십시오 .


1
"xhost +"는 내 문제를 해결했습니다. sudo로 웹 드라이버를 실행하면 브라우저가 열리지 않습니다. 이제 작동합니다.
Nick Perkins

2

나는 또한 같은 문제에 직면했다. 우리 또는 웹 드라이버가 열릴 때마다 FF 브라우저는 업데이트가 있는지 확인합니다. 이 경우 실행 시간 동안 업데이트하려고하면 Selenium 버전을 올바르게 업데이트하지 않아서 올바르게 업데이트 된 경우에도 오류가 발생합니다.

" http://docs.seleniumhq.org/download/ "로 이동 하여 최신 버전을 다운로드하십시오. 이제 가서 문제를 해결하십시오. :)


1

같은 오류가 발생했습니다. 셀레늄 자바 버전 2.25.0과 Firefox vresion 18.0.2를 사용했습니다. selenium-java의 버전을 2.30.0으로 변경했으며 이제는 작동합니다.



1

젠킨스에 Xvnc 플러그인을 설치하십시오. 문제를 해결해야합니다.


1

"selenium_ 포트 7055에서 호스트 127.0.0.1에 연결할 수 없습니다"와 동일한 오류가 발생했습니다. 해결책 : Firefox 버전 43.0.1에서 selenium-java-2.48.2를 사용했으며 이제는 잘 작동합니다.


1

나도 같은 문제가 있었지만 파이어 폭스 버전을 35.0.1로 다운 그레이드하면 문제가 해결되고 내 셀레늄 버전은 2.43입니다.


1

도커를 실행하는 것과 똑같은 문제가 있었지만 언급 한 오류 앞에 로그에서 솔루션을 찾았습니다.

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)

나는 조언을 따랐고 문제는 정리되었습니다.


0

이것이 IWebDriver의 정적 속성을 사용하고 여러 테스트 메소드에서 호출 할 때 작동하는 방식입니다.

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()
    {
        ...
    }

    ...
}

처럼

 [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("Контакт"));
 }

해결책

각 호출 테스트 메소드에 대해 새 Driver 인스턴스를 작성하십시오.

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

0

셀레늄 스크립트가 실행되고 있지 않으면 셀레늄 항아리를 업데이트하십시오. 현재 셀레늄-java-2.43.0-srcs를 사용하고 있습니다.

이제 잘 작동합니다


0

다른 버전의 ff에서 발생합니다. selenium-server-standalone-2.41.0.jar 및 selenium-java-2.41.0.zip을 사용하여 최신 ff 버전 39를 사용하고 있으며 동일한 오류가 표시됩니다.

서버 및 클라이언트 버전 2.47.0 및 2.47.1을 각각 사용한 호환성에 대한 최신 서버 및 클라이언트 jar 파일을 여기 에서 가져 오십시오. 그리고 붐! 효과가있었습니다.


0

이전 버전으로 인해 발생합니다. 브라우저를 최신 버전으로 업데이트하고 셀레늄 웹 드라이버 패키지를 최신 버전으로 업데이트하십시오.


0

터미널을 다시 시작하면됩니다. 터미널은 아무 것도 걸려 있지 않습니다. 그 후 모든 것이 잘 작동합니다.


0

지식 기반에 추가. Bamboo에서도 같은 문제가있었습니다. Bamboo의 환경 속성을 사용하여 문제를 해결했습니다.

DISPLAY=":1"

pom.xml에서 시스템 특성으로 값을 추가하지 않거나 명령 행이 작동하지 않았습니다.


0

Windows : Firefox의 "비트 니스"도 확인하십시오. Firefox 43.0.1 64 비트는 Selenium 2.50.0에서 작동하지 않습니다. Firefox 43.0.1 32 비트와 잘 작동 ...


0

나도 3 일 동안이 오류에 갇혀 마침내 알아 냈습니다. 여기서 주어진 대답을 볼 수 있습니다. 이것은 브라우저 및 셀레늄 서버 호환성 문제입니다. 도움이 되길 바랍니다. 이 링크 에서 브라우저 호환성을 확인할 수 있습니다


0

나는 오늘 같은 문제가 있었다. 수정하기 위해 firefox 버전 51을 47로 다운 그레이드했습니다.

참고 : 가상 박스에서 Linux Ubuntu Mate를 사용하고 있으며 호스트는 다른 Ubuntu Mate입니다. 모든 OS는 64 비트이며 파이어 폭스도 있습니다.



0

firefox 38과 같은 문제가있었습니다.

다음 버전 종속성을 사용한 후 문제를 해결할 수 있습니다.

    <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

나는 이것이 디스플레이 문제 일 수 있다고 생각한다. 상자에 GUI가 없으면 셀레늄 웹 드라이버에서 파이어 폭스를 시작하면이 오류가 발생합니다.

이 문제를 해결하려면 먼저 yum install Xvfb -y상자에 Xvfb [ ] (가상 디스플레이 드라이버)를 설치하십시오. 그런 다음을 사용하여 jenkins에서 테스트를 실행하십시오 xvfv-run -a -d <your test execution command>. 가상 디스플레이 버퍼에서 브라우저가 시작됩니다. 또한 셀레늄 웹 드라이버를 사용하여 스크린 샷을 얻을 수 있습니다.


-1

해결책 -

1) Selenium 서버 즉, 셀레늄 jar "selenium-server-standalone-2.xx.x.JAR"을 "selenium-server-standalone-2.45.0.JAR"로 업그레이드하십시오.

2) Selenium 클라이언트 드라이버 (예 : selenium libs 폴더 "selenium-java-2.xx.x")를 "selenium-java-2.45.0"으로 업그레이드하십시오.

3) 호환 가능한 Firefox 버전 확인 및 설치

참조- 업데이트 된 셀레늄 라이브러리 및 jar 즉, 버전 2.45.0 다운로드

이것은 당신의 문제를 해결합니다 .. 건배!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.