2010-05-11 3 views
0

이전에 Selenium IDE를 사용하고 Firefox에서만 테스트를 실행 한 Selenium RC를 처음 사용했습니다. Eclipse를 통해 Selenium RC를 사용하여 실행하는 기본 테스트를 얻으려고합니다.셀레늄 RC 테스트 - IE는 Tomcat 앱에서 403 오류를냅니다. Tomcat 루트 OK

com.thoughtworks.selenium.SeleniumException: XHR ERROR: URL = http://localhost:8080/pims Response_Code = 403 Error_Message = Forbidden 
    at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97) 
    at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91) 
    at com.thoughtworks.selenium.DefaultSelenium.open(DefaultSelenium.java:335) 
    at org.pimslims.seleniumtest.FirstTest.testNew(FirstTest.java:32) 
    ... 

: 내 테스트는 내가 팝업 차단을 살해했지만, IE8은 403 응답에 "XHR 오류"를 포함, 슬로우하는 SeleniumException를 일으키는 것을 지금 사파리와 파이어 폭스에서 확인을 작동 http : // localhost : 8080 (스팸으로 생각하기 때문에 여기에 슬래시 사이에 공백이 있음)과 비슷한 테스트를 할 수 있습니다. IE가 Tomcat 기본 페이지를 열고 링크를 클릭하도록 설정할 수 있습니다. 이것은 http : // localhost : 8080/pims에서 응용 프로그램을 열려고 할 때만 발생합니다.이 오류는 IE에서만 볼 수 있습니다. URL에 주소를 입력하여 해당 URL을 IE에서 열 수 있습니다.

나는 이것이 IE를 일으키는 몇 가지 설정이 있다고 생각했지만, 나는 내가 생각할 수있는 모든 것을 시도했다. http : // localhost : 8080이 내 신뢰할 수있는 사이트에 있으며, 해당 영역의 보안을 최소로 낮추었으며, 팝업과 관련된 것으로 보이는 것을 허용했습니다. http : // localhost : 8080/pims/신뢰할 수있는 사이트로, IE는 이미 거기에있다.

나는 또한 프록시 설정을 엉망으로 만들었으나 아무 소용이 없지만 확실한 것을 놓친 것 같습니다.

* iexplore, * iehta 및 * iexploreproxy로 테스트를 시작하려고 시도했습니다. 모두 똑같이 작동합니다.

내가 놓친 것이 있습니까? 참고로

, 여기 내 테스트 케이스입니다 - 이것은 PIMS 응용 프로그램의 인덱스 페이지를 열고 링크를 클릭 그대로, 파이어 폭스에서 작동합니다

public class FirstTest extends SeleneseTestCase { 
    @Override 
    public void setUp() throws Exception { 
     this.setUp("http://localhost:8080/", "*firefox"); 
    } 

    public void testNew() throws Exception { 
     final Selenium s = this.selenium; 
     s.open("/pims"); 
     s.click("logInOutLink"); 
     s.waitForPageToLoad("30000"); 
    } 
} 

어떤 도움을 크게 감사를!

답변

0

약간 더 나은 솔루션 :

s.open("/"); 
s.getEval("window.document.body.innerHTML='<a href=\"/pims\">Link to PIMS<\\/a>'"); 
s.click("link=Link to PIMS"); 

이, 톰캣 루트 페이지를 열 응용 프로그램에 대한 링크와 함께 자신의 몸 전체를 대체하고, 그 링크를 클릭합니다.

끔찍하지만 작동합니다.

1

이것은 놀랍지 만 "더러운 해킹"이 느껴지지만 답이 될 수도 있습니다.

톰캣 루트를 가리 키도록 테스트를 설정합니다

this.setUp("http://localhost:8080/", "*iexplore"); 

은 셀레늄-RC 대신 직접 여는 톰캣 관리자를 통해 응용 프로그램로 이동합니다.

/* 
* This works 
*/ 
public void testFromRoot() throws Exception { 
    final Selenium s = this.selenium; 
    s.open("/"); 
    s.click("link=Tomcat Manager"); 
    s.waitForPageToLoad("30000"); 
    s.click("link=/pims"); 
    s.waitForPageToLoad("30000"); 
    s.click("link=User Help"); 
    s.waitForPageToLoad("30000"); 
    s.click("logInOutLink"); 
    s.waitForPageToLoad("30000"); 
} 

/* 
* This doesn't 
*/ 
public void testNew() throws Exception { 
    final Selenium s = this.selenium; 
    s.open("/pims"); // <<<<<<<<<<<<<< Test fails here with exception, 403 error 
    s.click("link=User Help"); 
    s.waitForPageToLoad("30000"); 
    s.click("logInOutLink"); 
    s.waitForPageToLoad("30000"); 
} 

나는 이것을 계속 추구 할 것이지만 희망적으로 보인다. 누군가 에 대한 통찰력을 가지고 있는데 이것이인데 왜 제대로 작동하는지 확신 할 수 있습니다. 이것과 IE 자체 보안 설정 (일주일 내내 엉망이되어 버린)의 조합으로 인해 작동 중일 수도 있습니다.

플랜 B는 IE8에서 IE7로 되돌려 야합니다 (8 단계에서 더 엄격한 크로스 도메인 컨트롤이 필요하다고 생각합니다). 그러나이를 피하기 위해 노력하고 있습니다. 톰캣 관리자에 로그인 포함되지 않습니다