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;' }
有没有更好的方法来处理这个问题?