2012-07-25 2 views
1

자바 스크립트 팝업 창이 ... 나는이 함께 붙어 :Watir과 난 그냥 Watir과를 배우기 시작했다

내가 Watir과 클릭을 (콘텐츠 읽기)이 자바 스크립트 팝업 창을보십시오 :

http://www.w3schools.com/js/tryit.asp?filename=tryjs_alert

내 Watir과 코드는 다음과 같습니다

require 'watir' 
b = Watir::Browser.start "www.w3schools.com/js/tryit.asp?filename=tryjs_alert" 
b.maximize 
b.frame(:name, "view").button(:text, "Show alert box").click 
b.javascript_dialog.button('OK').click 

을가 팝업 창에, Watir과는 클릭하지 않습니다 "OK"버튼을 작동하지 않습니다 ..하지만.

Watir-Webdriver는 팝업 창 ("browser.alert.ok")을 처리 할 수 ​​있지만 "고전적인"IE 전용 Watir (복잡한 해킹없이 AutoIt/Sikuli 등 사용)을 할 수 있다는 것을 알고 있습니까?

편집 : 내가이 줄을 완전히 팝업 창을 제거 할 수 있었다 :

가없는 것보다는 더 나은
b.frame(:name, "view").execute_script("window.alert = function() {}") 

, 이제 시험이 창을 팝업을 중지하지 않습니다,하지만 난 아직 확신 할 수 없습니다/팝업 읽기 창문 ...

답변

0

Watir이 버튼을 클릭하여 자바 스크립트 대화 상자를 여는 것처럼 보입니다. 결코 얻지 못하는 것을 기다리고 있습니다.

해결책은 click_no_wait 버튼을 클릭하는 것입니다. 대신이 시도 :

require 'watir' 
b = Watir::Browser.start "www.w3schools.com/js/tryit.asp?filename=tryjs_alert" 
b.maximize 
b.frame(:name, "view").button(:text, "Show alert box").click_no_wait 
b.javascript_dialog.button('OK').click 

업데이트 : 그냥이가 Watir과 위키에 문서화 된 것으로 나타났습니다 - http://wiki.openqa.org/display/WTR/JavaScript+Pop+Ups (첫 번째 예제 참조).

+0

예 해결책 일 수 있습니다. "작은"문제 하나만 : "click_no_wait"을 사용하면 Ruby가 완전히 손상되고 Windows가 종료되어 Microsoft에 오류 보고서를 보내려고합니다 ... (저는 XP SP3, Ruby 1.9.3p194, Watir 3.0.0) – apk

+0

Win7, Ruby 1.8.7, Watir 3.0.0을 사용하고있었습니다. –

+0

Ruby를 1.9.2로 다운 그레이드 한 후 더 이상 "click_no_wait"에서 충돌하지 않습니다. 그러나 Watir은 여전히 ​​팝업 창을 클릭하지 않습니다. – apk

관련 문제