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

테스트를 실행하는 상자가 있습니다. 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)



답변

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

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가 아닌 왜 당신을 위해 작동하는지 설명 할 수 있습니다.


답변

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

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

  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 를 다운로드해야합니다 .


답변

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

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

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


답변

FireFox 19 용 최신 Selenium 용기 (2.30) 가져 오기

https://code.google.com/p/selenium/downloads/list 에서 최신 jar (문서 작성 당시 2.31)을 다운로드 할 수 있습니다.


답변

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

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


답변

이 문제는 오랫동안 저를 괴롭 혔으며 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 업데이트를 사용하도록 설정했을 수 있습니다. 따라서 응용 프로그램은 이후 버전에서 실제로 테스트되지 않습니다.


답변

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