我正在使用watir-webdriver來驅動Web應用程序的測試運行。使用watir-webdriver等待js警報
有問題的頁面會響應輸入更改,其中帶有確認,隨後是頁面流失,然後是警報。
**更新**
我曾嘗試以下,但我得到了Selenium::WebDriver::Error::UnhandledAlertError
啓動在確認塊。
require "watir-webdriver/extensions/alerts"
b.alert do
b.confirm(true) do
b.checkbox(:index => 1).set
end
end
**結束時更新**
但是加入(後輸入變化)以下:
browser.driver.switch_to.alert.accept
將消失,第一確認沒有問題... ...
不幸由於頁面流失嘗試相同的線路以消除以下警報提高
Selenium::WebDriver::Error::NoAlertPresentError
由於警報尚未發生。
我的解決辦法是下面的方法添加到的Watir ::瀏覽器
def get_alert (timeout = 300)
Watir::Wait.until(timeout) {
begin
driver.switch_to.alert
rescue Selenium::WebDriver::Error::NoAlertPresentError
end
}
end
和運行所有警報通過
browser.get_alert
處理是否有這樣做的更好/內置方式這個?
**更新**
我的一個有益的解決辦法是它可以讓我用較硬的處理警報程序上,而不是讀(或產生)b.alert/b.confirm內塊
**結束時更新**
由於提前, 阿瑟
注意,上面做的將是什麼導致出現警報中的代碼。上面給出的例子恰好來自rspec測試,它使用了一個測試HTML頁面,該頁面有一個值爲'Confirm'的按鈕,這會導致單擊時發生確認警報。這行代碼將不得不改變爲導致確認對話框的任何操作。 – 2012-04-17 06:10:09
謝謝......但也許我應該明確表示我意識到對話框頁面,並嘗試過這種方法,但沒有成功。 正如我在我所提到的,我有一個確認,其次是一個頁面加載,然後是一個警報,導致更多的麻煩。我會更新它以使其更加清晰。 – Arth 2012-04-17 10:21:50