2011-04-11 4 views
3

해결책 : 오늘 (2011-04-13) Firefox 4의 확인 상자가 Selenium RC에 잘못 처리됩니다. 파이어 폭스 3.16으로 다시 변경해야하고이 문제가 사라집니다. 다시 한번 감사드립니다.Selenium RC 클릭 명령이 멈춤.

원래 질문 :

안녕하세요 셀레늄 전문가,

나는 자바 클라이언트와도 독립 서버로 셀레늄 2.0b3을 사용하여 Java에서 자동 브라우저 테스트를 실행하려합니다.
서버가 특정 프로필로 Firefox 4를 시작합니다.

테스트는 "클릭"명령으로 중단됩니다. 기다리지 만 시간 초과/예외/오류가 발생하지 않습니다. 이 클릭하는 동안 확인 상자가 나타나서 그게 문제인 것 같아요.하지만 왜 이것이 붙어 있는지 몰라요. Selenium IDE에서는 RC에서만이 확인 상자를 제공하지 않습니다.

문제는 확인 상자가 나타나기 때문에 클릭이 발생하지 않지만이 확인 상자가 중단된다는 것입니다. 나는이 시도했지만 도움이되지 않았다 :

selenium.click("css=div[id=command_Delete]"); 
selenium.click("id=command_Delete"); 
String JSscript = "jQuery('#command_Delete').click();" // See http://api.jquery.com/click/ 
selenium.runScript(JSscript); 

이가 클릭을 시작하는 방법 단지 방법입니다. http://www.sqaforums.com/showflat.php?Cat=0&Number=567974&an=&page=0&vc=1

감사 : 안드라스

자바 코드 :

selenium.click("//div[@id='command_Delete']/span"); 
//stucks here 
//so this is not reached: 
String confirmation = selenium.getConfirmation(); 

HTML :

<div id="command_Delete" class="..."> 
    <div>...</div> 
    <span>Delete</span> 
    <div>...</div> 
    <br><br> 
</div> 

자바 스크립트 :

<script type="text/javascript"> 
    $('command_Delete').addEvent('click',function(){ 
     var isConfirmTrue = confirm('Do you want to delete?'); 
     if (isConfirmTrue) { 
      var myForm = getFormObj(document, "deleteForm"); 
      submitForm(myForm); 
     } 
    }); 
</script> 
는 어쩌면 나는이 링크를 따라 다른 스레드를 시작해야

그리고 자바에서3210, 그것은 셀레늄 RC 대답을 기다리고 달려 있습니다 :

HttpURLConnection.getInputStream() line: 912 [local variables unavailable] 
HttpURLConnection(HttpURLConnection).getResponseCode() line: 367 [local variables unavailable] 
HttpCommandProcessor.getResponseCode(HttpURLConnection) line: 147 
HttpCommandProcessor.getCommandResponseAsString(String) line: 167 
HttpCommandProcessor.executeCommandOnServlet(String) line: 107 
HttpCommandProcessor.doCommand(String, String[]) line: 89 
DefaultSelenium.click(String) line: 167 
... 

답변

0

selenium.click("id=command_Delete"); 

selenium.click("//div[@id='command_Delete']/span"); 

를 교체하려고 있나요?

이벤트가 작동해야하는 div 자체에 바인딩되어 있기 때문에 나에게 보인다.

: 당신은 이미이 페이지에로드 된 것 같다하고 (특히 크로스 브라우저 테스트를위한) 일을 더 쉽게 만드는 것이므로

또한, 내가 jQuery를 사용하고이 작업을 수행하여 직접 click 조치를 실행할 수 있습니다

String JSscript = "jQuery('#command_Delete').click();" // See http://api.jquery.com/click/ 
selenium.runScript(JSscript); 

이 솔루션을 사용하면 도움이되는지 평가할 필요가 있습니다.

+0

이 방법이 도움이되는지 알려주세요. – Argote

+0

안녕하세요, 불행히도 작동하지 않았습니다. 나는이 명령들 모두가 완전히 같다고 생각한다. 결국 delete 명령은 자바 스크립트에서 호출 될 것이다. – Andras

+0

@Andras는 내 편집을 확인합니다. – Argote

0

위젯이 클릭당 여유가 있습니까?

나는 CSS 식별자를 시도 할 것입니다 :

selenium.click("css=div[id=command_Delete]"); 
+0

해결책은이 페이지 상단에 있습니다. – Andras

+1

@Andras - 답변으로 게시하고 확인란을 선택하십시오. – MacGyver

1

을 확인 상자가 확인 상자가 제거 될 때까지 차단 테스트를 팝업됩니다. 이 문제가 귀하의 문제인지를 빨리 수동으로 테스트 할 수 있습니다.

테스트를 실행하고 확인 상자가 나타나면 모든 것이 정상인 경우 정상적으로 그 시점부터 테스트를 계속해야합니다.

Selenium이 페이지로드를 기다리고 있지만 팝업 상자가 페이지로드를 차단하여 결국 시간 초과가 발생합니다.

selenium.chooseOkOnNextConfirmation();을 사용하여이 문제를 해결할 수 있습니다. 클릭하기 전에.

+0

이 답변을 주셔서 감사합니다. 그러나 해결책은 FF4/FF3 변경이었습니다. – Andras

관련 문제