2015-07-09 107 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你可以检查这个存在并等待它去?