2014-11-24 3 views
0

Tomcat에 호스팅 된 응용 프로그램이 있습니다. &이 아파치의 다이제스트 인증에 의해 프록시 처리되었습니다. 서버에 액세스 할 때 basicAuth 스타일 로그인 대화 상자가 나타납니다.Geb : 페이지로드 중 브라우저의 BasicAuth 대화 상자와 상호 작용하는 방법

아래의 코드를 사용하여 로그인하려고하면 "driver.switchTo(). alert()"부분이 발생하지 않습니다 ... via ... 명령문에서 계속 루핑을 유지하고 예외를 throw합니다. 나는 GEB의 "to"와 "via"문장 모두가 페이지로드가 완료되기를 기다리는 것으로 추측하고있다. 이제 geb는 페이지로드를 기다리고 있으며 페이지는 geb가 자격 증명을 입력하기를 기다리고 있습니다. 죽은 자물쇠. 이 문제를 해결하는 방법에 대한 제안 사항을 제공해 주시겠습니까? 이미 http : // : @ mydomain.com/index.jsp를 시도했지만 위협적인 로그인 대화 상자로 계속 묻습니다. 간단한 단어에서

via AppLoginPage //using a page object here 
Alert alert= driver.switchTo().alert(); 
// Type the username 
alert.sendKeys(user);   
Robot robot = new Robot(); 
robot.keyPress(KeyEvent.VK_TAB); 

, 어떻게 내 로봇 코드가 경고를 처리 할 수 ​​있도록 아웃 전체 페이지로드를 기다리는 완료 GEB를 만드는 방법? 희망이었습니다.

답변

0

WebDriver와 Geb를 사용하여 기본 인증 대화 상자를 처리 할 수 ​​있다고 생각하지 않습니다. 기본 URL에 자격 증명을 제공 할 수 있습니다 (예 : baseUrl = 'http://admin:[email protected]'. 그래도 작동하지 않는다면 인증 프록시를 설정하고 사용하는 드라이버를 구성해야합니다.

0

우리는 내부 앱에 대해 baseUrl = 'http://admin:[email protected]' 스타일의 인증을 사용합니다.

한 단계에서 프록시를 사용하고 Robot을 사용해 보았지만 Webdriver에서 사용하는 기존 라이브러리에 문제가 발생하여 문제가 덜 발생했습니다.

IE를 사용하는 경우 @는 작동하지 않습니다. 그룹 정책 및 reg 편집을 사용하여이 기능을 사용할 수 있습니다. 이는 보안상의 문제임을 알고 있어야합니다.

내가 선호하는 방식이 아닌 경우 이전 코드를 찾아 낼 수 있습니다. 내 이름은 @ 포함되어 있기 때문에, 암호 솔루션 :

I used a similar answer as per this question

0

나는 사용자가 사용할 수없는 (또는를 탈출하는 방법이?). 어쨌든 으로 실험했는데, Java에 있기 때문에 테스트 자체 전에 쉽게 시작한 다음 인증 된 헤더를 테스트 된 URL로 보낸 요청에 "주입"할 수 있기를 바랬습니다.

은 그래서 : 1.는 프록시는, 2 구성이 제대로 프록시를 사용하도록 드라이버, 3. 실행

거친 코드 결과 테스트 can be found in its completeness in my answer How to handle server authentication using Geb/WebDriver

질문 유사한 코드가 기준입니다 Browse.drive 전화를 걸고 Firefox 드라이버를 설정합니다. 나는 IE가 이런 방식으로 사용될 수 있기를 바랍니다.

나는 답을 어디에 넣어야할지 몰랐다.하지만 실제로 그것을 복제하고 싶지는 않다. 그리고 결국 StackOverflow에있다.