2011-03-29 3 views
0

나는 웹 사이트 테스트를 자동화하기 위해 Selenium을 사용 해왔다. 테스트의 일부는 AJAX 요청이 완료되기를 기다리는 것을 포함합니다. IE9을크롬에서 AJAX를 기다리는 셀렌.

selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().jQuery.active == 0", "5000"); 

그것은 크롬과 파이어 폭스 4에서 잘 작동하지만,하지 : 나는 jQuery를 1.4으로 그렇게 할 줄을 사용하고있다. 그런 다음 jQuery 1.5로 업그레이드했고 마술처럼 Chrome에서 작동하지 않습니다. 나는 다음과 같은 변화를 시도했지만, 그들 중 누구도 작동하지 :

selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().jQuery.active == 0", "5000"); 
selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().jQuery.ajax.active == 0", "5000"); 
selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().$.active == 0", "5000"); 
selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().$.ajax.active == 0", "5000"); 

SeleniumException는 재산 active 또는 정의의 ajax를 읽을 수 있다는 것입니다, 그래서 어떻게 든 jQuery를 얻을 수없는 것 같아요. 동료는 Firefox 4에서 동일한 테스트를 실행하고 있습니다.

누구든지이 문제가 발생 했습니까? 어떤 제안?

답변

0

분명히 Selenium의 모든 것은 Thread.Sleep()s을 무작위로 던져서 고칠 수 있습니다. 창은 일부 경우로드가 완료되지 않았으므로 $은 정의되지 않았습니다. 기다리기 전에 잠을 자고 이제는 잘 작동합니다.

나는 다음 줄을 사용했다 :

사람들이 내가 jQuery를 1.5을 사용하고있는 경우,이 $.active 작품 반면, 나를 위해 정의되지 않은 것 $.ajax.active을 사용 했어야 말에도 불구하고
selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().$.active == 0", "5000"); 

.