루비의 Watir 보석을 사용하여 자바 스크립트 팝업을 연 버튼을 클릭하고 팝업에서 '확인'을 클릭하면 보입니다. 하기 위해서. 버튼은 프레임의 프레임에 있습니다. 광범위하게 검색하여 Watir wiki entry에 대한 자바 스크립트 팝업을 읽었지만 아무 것도 작동하지 않습니다.
execute_script 및 click_no_wait가 예상대로 작동하지 않기 때문입니다. 예를 들어
, 다음 명령을Watir Help : 클릭 대기하지 않고 실행중인 스크립트가 예상대로 작동하지 않습니다.
@browser.execute_script('window.alert = function() {}')
@browser.execute_script('alert("hello")')
대신 아무것도 안하고의 예상 행동 "안녕하세요"라는 자바 스크립트 팝업을 만들 수 있습니다.
명령 :
@browser.button(:value, 'Submit').click
클릭 자바 스크립트 팝업을 생성하는 버튼을 누릅니다. 그런 다음 팝업이 '확인'을 클릭 할 때까지 스크립트가 중단됩니다.
명령 :
@browser.button(:value, 'Submit').click_no_wait
버튼을 클릭하지 않는 (또는 버튼을 클릭 않으며, onclick 이벤트를 트리거하지 않습니다).
Timeout::timeout(1) { @browser.button(:value, 'Submit').click }
및
Thread.new { @browser.button(:value, 'Submit').click }
을하지만 시간 초과 내가 수동으로 팝업에서 '확인'을 클릭 할 때까지 루비가 정지 원인이 예외가 발생하지 및 Watir과는 클릭하지 않습니다
는 또한 시도 내가 새 스레드에서 실행할 때.
누구든지 솔루션을 제공 할 수 있습니까?
편집 : 문제는 @ browser.button.click 이후에 팝업이 닫힐 때까지 스크립트가 중단된다는 것입니다. @ browser.alert.ok는 팝업을 성공적으로 닫지 만 팝업이 닫힐 때까지 멈추기 때문에 버튼을 클릭 한 후 스크립트는 @ browser.alert.ok를 실행할 수 없습니다. 이 catch-22는 click_no_wait에 의해 해결되지만, click_no_wait는 클릭하지 않습니다.
시스템 정보 :
윈도우 7 엔터프라이즈 64 비트
Internet Explorer 버전 9.0.12
Watir과-4.0.2-86-mingw32
루비 1.9.3p286 (2012년 10월 12일) I386 -mingw32]
감사합니다. 솔루션이 @ browser.button (...) 다음에 스크립트가 제대로 작동하지 않습니다. 팝업이 닫힐 때까지 클릭하십시오. 이것은 click_no_wait을위한 것이지만 click_no_wait을 사용하면 버튼이 전혀 클릭되지 않습니다. – quv
나는 이것이 Watir-Classic의 버그라고 생각하며 [Issue 45] (https://github.com/watir/watir-classic/issues/45)를 업데이트했습니다. 그 동안 원숭이 패치 (해결 방법)로 답변을 업데이트했습니다. –
감사합니다. 이것은 완벽하게 작동했습니다. – quv