2012-05-01 75 views
3

我最近開始使用Watir-Webdriver後,以前使用Watir,因爲我需要一些功能,這是存在於webdriver,但不是在Watir。我在watir-webdriver遇到了一個我從來沒有面對過的問題。Watir-webdriver:如何強制點擊方法等待頁面完全加載

每當對Watir中的按鈕使用click方法時,它會用於隱式等待,直到完全加載新頁面。我在Watir-webdriver文檔上看到,等待並在此question中watir-webdriver的等待已被更改,以適應由AJAX製作的網頁的動態更改。現在,我自動化的頁面沒有任何AJAX元素,它只包含靜態元素。

但是,當我在watir-webdriver中使用click方法時,它不會等待下一頁隱式加載並立即執行調用中的下一行。我可以使用的是wait_until_present,但是對於很多頁面來說這樣做似乎對我來說是一種矯枉過正,當等待頁面加載點擊時似乎是標準行爲。

我是否缺少一些我需要切換的選項,以便在watir-webdriver中模擬Watir的點擊方法?

+0

你確定頁面沒有通過javascript調用加載部分,比如自定義控件,jquery等嗎? –

+0

等待沒有太多變化,因爲我們已經添加了其他幫助方法,以便您可以更好地處理瀏覽器報告已完成加載頁面的情況(加載了html中指定的所有文件),但客戶端操作仍然存在渲染,進行更改和/或加載其他內容。即使在'靜態'頁面中,如果有很多javascript和CSS類的魔術發生來控制頁面上對象的定位和呈現,這種情況有時也會發生。 –

回答

1

如果您在瀏覽器顯示頁面已加載但仍有問題(客戶端可能正在執行javascript代碼或css邏輯等)時出現問題,那麼我建議在您的前面使用'when_present' decorator行動。

這是一個少許清潔劑不必放在一個單獨的等待步驟,比固定的睡眠時間等等好多了

browser.button(:how => 'what').when_present.click 
+0

我試過了when_present指令,它幫助我追蹤原始問題。卸載windows-api和win32api gem後,它解決了這個問題。 – chaitanya

1

你也可以等待的股利,如果你想要的內容加載加載但不能點擊。

browser.div(:how => 'what').wait_until_present 
相關問題