7

기본적으로 firefox와 chrome에서 모두 테스트 케이스를 실행하는 우분투 서버에서 셀레늄 테스트 케이스를 실행합니다. 파이어 폭스 출시 및 테스트 케이스를 성공적으로 실행되지만 크롬 예외가 발생합니다 : 포트 21549Webdriver 예외 : "chrome not reachable"

에 ChromeDriver (v2.8.240825)를 시작 *****

:

***** 아래는 스택 트레이스의 조각입니다

org.openqa.selenium.WebDriverException : 0123에 도달 할 수없는 크롬

테스트 IntegrationTest.AdminUserelementscheck 실패에는 시스템 구현이 없기 때문에

PAC 지원이 비활성화 (경고 : 서버가 스택 추적 정보를 제공하지 않았습니다.) [오류] 명령 기간 또는 시간 초과 : 20.83 초

[오류 : chromedriver = 2.8.240825, 플랫폼 = Linux 2.6.32-431.el6.x86_64 x86_64

안녕 다음은 내 코드의 작은 조각이다 :

public class IntegrationTest { 

private static final String configFile="test.properties"; 

private final String FIREFOX="firefox"; 

private final String CHROME="chrome"; 

private final String PHANTOMJS="phantomjs"; 

private final String BROWSERNAME="browser"; 

private static Properties props = new Properties(); 

public WebDriver webDriver; 

private static Configuration additionalConfigurations; 


@BeforeClass 

public static void setUp() throws IOException, SQLException{ 

props.load(IntegrationTest.class.getResourceAsStream("/" + configFile)); 
     } 

@test 

public void AdminUserelementscheck() throws SQLException, IOException { 

String[] browsers = props.getProperty(BROWSERNAME).split(","); 

System.out.println("Number of browsers specified in conf:"+props.getProperty(BROWSERNAME)); 

for(String browser:browsers){ 

System.out.println("Browser currently processing:"+browser); 

if(browser.equalsIgnoreCase(FIREFOX)) 

webDriver = new FirefoxDriver(); 

else if(browser.equalsIgnoreCase(CHROME)) 

webDriver = new ChromeDriver(); 

else 

webDriver = new PhantomJSDriver(); 

running(testServer(3333,fakeApplication()),webDriver, new Callback<TestBrowser>() { 


********* LOGIN AND ASSERTION STATMENTS******************* 

browser.quit() 

} 

}); 

} 
+0

도커 컨테이너와 원격 장치/호스트 사이의 포트 전달 문제 일 수도 있습니다. –

답변

19

실행하기 위해 크롬은 또한 유닉스 용기를 사용하고 있기 때문에이 될 것입니다. 당신이 고정 표시기 내에서 실행하려는 경우, 그렇지 않으면

--no-샌드 박스

와 크롬을 시작할 수 있습니다

을 --privileged

고정 표시기 실행 명령을 전달합니다

+1

고마워, It Worked. –

+3

@Conor @ Immanuel Fredrick :이 명령을 어디에 넣어야합니까? 위의 예를 이해하도록 도와주세요. –

+0

좋아요, 이걸 크롬 args로 전달하려고했지만 환경에 사용할 수 없다고 말합니다. –

1

귀하의 크롬 드라이버가 된 것으로 보인다. 아래에서 최신 날짜를 다운로드하고 새로운 오류가 발생하면 다시보고하십시오.

http://chromedriver.storage.googleapis.com/index.html?path=2.14/

+0

나는 chromedriver 버전의 대부분을 2.7에서 2.14로 시도했다. 같은 오류가 발생합니다. –

+1

점은 전체 설치가 도커 컨테이너 안에서 실행된다는 것입니다. –

0

또한 PATH 환경 변수에 chromedriver 경로가 있는지 확인하십시오.

+0

시스템 환경 경로에 chromedriver 실행 파일이 있습니다. 그리고 크롬 드라이버를 선택할 수는 있지만 시작할 수는 없습니다. –

+1

스크립트를 호출하기 전에 DISPLAY = : 0과 같은 XServer Display 매개 변수를 구성 했습니까? –

3

비슷한 문제가 발생했습니다. 내가 셀레늄 테스트를 로컬로 실행 중이고 "webdriver 예외 크롬이 연결할 수 없음"오류가 갑자기 나타났습니다.

문제는 이미 일반 크롬 브라우저에 너무 많은 탭이있는 것이 었습니다. 좌절하고 난 후에 나는 거의 탭을 닫지 않고 갑자기 작동했다. 탭의 특정 제한이 있는지 확실하지 않지만 누군가가 동일한 문제가 발생하면 시도해보십시오.

+0

다음 번에 좀 더 간단하게하려고 노력할 것입니다 :) – sKyTzi