AWS EC2 인스턴스에서 Selenium을 실행하는 중 예외가 발생했습니다.

AWS EC2 인스턴스에서 Selenium을 실행하는 중 예외가 발생했습니다.

헤드리스 서버인 AWS EC2 인스턴스에서 Firefox 드라이버를 사용하여 Selenium 테스트 사례를 실행할 때 이 예외가 발생합니다. Firefox를 설치하고 필요한 모든 변경 사항을 설치했습니다.

org.openqa.selenium.WebDriverException: org.openqa.selenium.WebDriverException: 포트 7055에서 바이너리 FirefoxBinary(/opt/firefox/firefox-bin)에 연결하지 못했습니다. 프로세스 출력은 다음과 같습니다. �*** e = [예외... "구성 요소가 오류 코드를 반환했습니다: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]" nsresult: "0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE)" 위치: "JS 프레임 :: chrome: //browser/content/utilityOverlay.js :: getShellService :: 339행" 데이터: 아니오]

이 예외에 대해 누구든지 도와줄 수 있나요?

답변1

먼저 "가상 화면"으로 실행할 수 있는 xvfb를 설치하십시오.

sudo yum -y install xorg-x11-server-Xvfb 

그런 다음 Amazon EC2에 Firefox를 설치하는 데 도움이 되는 이 유용한 게시물을 확인해야 합니다. 이는 EC2에서 sudo yum install firefox만 수행할 수 없기 때문입니다. 따라서 기본적으로 파일을 생성합니다(저는 이것을 사용했습니다).요점) 그가 제공하는 EC2 인스턴스에서 이를 실행하여 Firefox와 모든 종속 항목을 설치합니다. http://joekiller.com/2012/06/03/install-firefox-on-amazon-linux-x86_64-compiling-gtk/

스크립트가 실행되면 Firefox가 설치됩니다.

/usr/local/bin/firefox

기본적으로 나는 믿습니다.

설치가 완료되면 위 링크에서 설명한 대로 경로에 추가해야 할 수도 있습니다. 하지만 DISPLAY 시스템 변수도 추가해야 하므로 다음과 같이 하십시오.

cat << EOF >> ~/.bashrc
PATH=/usr/local/bin:\$PATH
DISPLAY=:99
export PATH
export DISPLAY
EOF

그런 다음 화면 99에 대해 xvfb를 시작해야 "가상 화면"에서 Firefox를 실행할 수 있습니다. 그렇게...

Xvfb :99 -screen 0 1024x768x16 &

그런 다음 셀레늄 테스트를 다시 실행하면 경로에서 Firefox를 찾아 해당 EC2 인스턴스의 올바른 "가상화된" 화면에서 실행할 수 있기를 바랍니다.

참고로 저는 Amazon Linux의 어떤 유형의 전문가도 아닙니다. 그러니... 행운을 빕니다.

또는 GUI를 갖도록 쉽게 설정할 수 있는 Amazon EC2 우분투 마이크로 인스턴스에서 실행할 수 있는 셀레늄 서버에 대한 실행을 조사할 수 있습니다.

답변2

포트 7055에서 바이너리 FirefoxBinary(/opt/firefox/firefox-bin)에 연결하지 못했습니다.

최신 버전의 Firefox를 지원할 수 있도록 Selenium 서버를 2.53.x로 업그레이드해야 합니다. 또는 다른 웹드라이버(예: Chrome)를 사용하세요.

Maven을 사용하는 경우 다음에서 사용할 라인은 다음과 같습니다 pom.xml.

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-java</artifactId>
  <version>2.53.1</version>
  <scope>test</scope>
</dependency>

보다:

관련 정보