2012-03-20 2 views
2

나는 우리의 응용 프로그램을 통해 여러 팝업의 내용을 테스트하는 임무를 맡았습니다.Watir을 사용하여 "이 페이지를 닫으려고하는 웹 페이지"메시지를 닫는 방법

나는 팝업을 통해 페이지에 액세스 할 수 없습니다 되었기 때문에
var win = new Window({ className: "spread", title: "Discussion", 
left: 1, width: 410, height: 300, url: "Discussion.aspx?ID=" + id, 
showEffectOptions: { duration: 0}}) 

이, 내가 직접 페이지로 이동하기 시작했다 : 모든 팝업이 비슷한을 사용하여 호출된다. 문제는 페이지가 처리가 완료된 후에 닫히도록 설계되었다는 것입니다. (window.close();)

페이지를 테스트 할 때 페이지에 직접 액세스하므로 메시지가 The webpage you are viewing is trying to close the window. Do you want to close this window?이됩니다.

Watir (Watir-webdriven 아님)을 사용하여 메시지에 액세스하고 예 또는 아니요를 클릭하는 방법이 있습니까?

PS -

UPDATE 는 IE 개발자 도구를 사용하여 (. 그 중요한 경우 내가 메시지를 해제하는 방법을 찾기 위해 시도했지만 아무 소용이 IE8을 사용하여), 팝업 외모와 일반화 된 HTML 구조 같은 :

<html><body> 
    <iframe><form>... (Main page here) 
    <div class="dialog"> 
    <div class="spread_close" onclick="Window.close()"/> 
    <table><tr><td><iframe> (table is not part of the "spread_close" div) 
     <html><body><form><div><table><tr><td> 
     <textarea name="txtDiscussion" id = "txtDiscussion" > 

browser.div(:class => "spread_close").exists? 반환 true를 사용하여.

browser.text_field(:name => "txtDiscussion").exists?을 사용하면 false을 반환합니다. 듀얼 <html> 때문에 이것이라고 가정합니다.

+0

대신 팝업 문제를 통해 페이지에 액세스하려고하는 것이 좋습니다. 나는 종종 이러한 오류 메시지를 클릭하는 것보다 쉽게 ​​발견했습니다. –

+0

어떤 Watir 버전을 사용하고 있습니까? –

+0

Ruby 1.9.3 Watir 2.0.4 이전에 팝업에 대한 액세스 권한을 얻으려고했는데 도움을 받아 (@ChuckvanderLinden 덕택에) 팝업을 닫을 수있는 액세스 권한을 얻을 수 있었지만 도움을 받았더라도 팝업 창 **에서 필드 및 버튼 **에 액세스 할 수 없습니다. ("팝업"은 최고의 용어가 아닐지도 모르지만 상황에 대해 내가 아는 최고) ... [링크] (http://stackoverflow.com/questions/8681869/trouble-attaching-to-a-javascript-window -with-watir) (팝업 닫기와 관련된 이전 질문 링크) – swood

답변

1

프레임이 있습니다. 그게 가능성이 액세스를 차단, 확률은 실제로 팝업이 아니라 스타일과 등 팝업 또는 모달 대화 거짓말을 많이 사용하는 '라이트 박스'div 있습니다.

watir wiki에서 프레임을 처리하는 방법에 대한 정보를 찾아 보면됩니다.

관련 문제