2011-05-17 45 views
1

我正在嘗試使用Ruby與 Watir創建一個網站的自動化腳本。如何在Watir中協商警報框?

我遇到了一種情況,我必須在 警報框中選擇「是」或「否」。問題是,我無法將警示框 識別爲頁面的組件,以便我可以獲取其標識符並使​​用 來選擇一個選項。

我發現一些信息如何 創建一個警告框,但我需要瀏覽一個。 任何人都可以幫我解決問題嗎?

+0

某些警報框必須在操作系統級別處理,因爲它們是模態的,並且實際上並不存在於瀏覽器頁面中。在這種情況下,它有助於瞭解您的操作系統,因爲在操作系統級 – 2011-05-18 21:13:52

+0

上使用不同的拍攝發送按鍵事件時,如果您正在導航的網站存在網址,則更容易瞭解您的情況。如果不可用,您可以提供頁面的來源。它會讓每個人都免於猜測。 – 2011-12-23 06:11:08

回答

3

這聽起來像你有一個confirm框,如果你可以選擇兩個選項(「確定」或「取消」)。如果你想模擬點擊「確定」,你必須在觸發確認前放置類似的東西。

# return true for confirm to simulate clicking OK 
b.execute_script("window.confirm = function() {return true}") 

如果您只有一個alert帶有一個「確定」按鈕,請執行此操作。

# don't return anything for alert 
b.execute_script("window.alert = function() {}") 

有關更多示例,請參閱this page

1

奧斯汀泰勒建議的方法可能工作得很好,但我認爲對於更普遍的解決方案,您需要在Chuck建議的操作系統級別處理Popups。

如果有人到這個網頁尋求這種答案的有在這裏列出不同的解決方案:http://wiki.openqa.org/display/WTR/JavaScript+Pop+Ups