2011-12-30 53 views
1

我是Watir的新手,並且正在爲我的工作開發測試工具。
我遇到了一個我似乎無法解決的問題,即使在檢查了幾個網站之後。用Watir附加到javascript窗口的麻煩

JavaScript的窗口創建爲如下:(創建的窗口保持在一個窗口中的PDF,所以唯一的「按鈕」是最小化,最大化和關閉)

<a id="LogIn_HyperLink2" class="ms-WPTitle" onclick="javascript:var win = new Window({className: 'spread', title: 'Security Statement', top:0, left:1, width:750, height:365, url:'--redacted--/security.pdf', showEffectOptions: {duration:1.0}}); win.setConstraint(true, {left:10, right:20}); win.showCenter(); return false;" href="--redacted--/security.pdf" style="color:#6699cc; font-weight:bold;">Security Statement</a><br> 

我一直在使用這兩種

嘗試
puts browser.modal_dialog(:title, "Security Statement").exists? 
puts browser.javascript_dialog.exists? 

都已經回到「假」

什麼方法,我應該考慮附加到這個新的窗口,或者更直接:我如何關閉這個新窗口?

您可以在此link(僅適用於IE)

回答

1

看到頁面如果窗口持有PDF文件,它是一個瀏覽器窗口,而不是一個模態JavaScript彈出(警告,確認,提示)

它定義開始沒有所有正常的菜單等活躍,但它仍然是一個瀏覽器窗口。您可以按照the Watir Wiki section about new browser windows中所述的方式使用url或標題進行附加,因爲您知道這兩者(給出您向我們顯示的HTML)。

如果您使用的是Watir-Webdriver,使用它的窗口切換命令。現在watirspec這是你最好的參考方法支持,以及他們如何工作。

編輯 感謝您的鏈接。雖然以上內容適用於新的瀏覽器窗口,但這不是您所面對的。你在那裏有瀏覽器HTML內的所有東西,在JavaScript中用JavaScript創建。這是所有標準的HTML元素,只要知道發生了什麼就可以輕鬆地進行交互(實際上,這比實現了更容易處理的恕我直言,而不是彈出窗口或單獨的窗口)

使用IE開發人員工具,點擊鏈接後,窗口「,單擊開發工具工具欄中的圖標以刷新開發工具中的DOM,您將能夠看到。

最外面的容器看起來是'對話'類的一個div,它在DOM中是唯一的。

窗口控件是在那個下面的三個div,帶有類'spread_close','spread_minimize','spread_maximize'。有三個表格保存'窗口'的頂部,側面和底部的圖形元素,但是那裏有零個實際內容,它只是一個可視化窗口框架。

另外還有一點是疊加窗口中的iframe,這是我覺得是內容將是(我不能得到它加載,也許是因爲我沒有授權它或東西)

如果你只是想關閉該窗口,試試這個:

browser.div(:class => 'spread_close').click 

由於這是進入現有的由於一系列客戶端JS代碼,您可能需要點擊之前的鏈接後,使用類似「when_present」的方法你首先開始與它進行交互。如果你想要做的只是點擊鏈接打開它,然後關閉它,你會這樣做

browser.link(:text => 'Security Statement').click 
browser.div(:class => 'spread_close').when_present.click 
+0

我試過使用'Watir :: IE.attach()'方法,同時使用標題和URL,並獲得「無法定位窗口」異常。 [鏈接](https://test.domaonline.com/test/)(僅限IE) - 使用安全聲明鏈接 - 這是其中一個位置的示例。 – swood 2011-12-30 18:20:48

+0

非常感謝!使用您呈現的新信息鍛鍊魅力。 – swood 2011-12-30 19:06:12