2015-07-09 102 views
4

我目前正在爲使用turbolinks(紅寶石)的產品編寫硒webdriver測試。當我點擊一個按鈕時,我必須等待turbolinks工作。當我測試jQuery的回調通常我等待我與代碼:Selenium Webdriver Turbolinks

driver.execute_script 'return jQuery.active == 0' 

我可以通過JavaScript檢查內容驗證Turbolinks做?還是有一個我可以抓住的元素可以做到這一點?我在頂部看到一個進度條,但我無法在任何地方找到該元素。

編輯:

我能夠做這樣的事:在頁面加載

driver.execute_script "$(document).on('page:load', function() { window.turbolinks = true; });" 
driver.execute_script "$(document).on('page:before-change', function() { window.turbolinks = false; });" 

,然後我可以等待window.turbolinks是真實

wait = Selenium::WebDriver::Wait.new(:timeout => 10) 
wait.until { driver.execute_script 'return window.turbolinks;' } 

有沒有更好的方法來處理這個問題?

回答

0

根據turbolinks文檔,進度條有類turbolinks-progress-bar你可以檢查這個存在並等待它去?