Selenium webdriver 如何测试window.status变量

Selenium webdriver 如何测试window.status变量,selenium-webdriver,rspec,capybara,minitest,capybara-webkit,Selenium Webdriver,Rspec,Capybara,Minitest,Capybara Webkit,我正在使用wkhtmlpdf库从HTML页面转换pdf。这个页面依赖于大量的javascript函数(ajax调用、谷歌地图),因此我不得不使用--窗口状态和--javascript延迟选项。我正在设置值window.status=“ready\u to\u print;”当一切都完成时。它的工作正常,pdf的渲染,因为它应该是 现在我想创建一个RubyonRails单元/集成测试,以检查HTML页面是否呈现为正确的状态。如何使用rpec、capybara或任何其他方法来测试这一点?我不知道se

我正在使用wkhtmlpdf库从HTML页面转换pdf。这个页面依赖于大量的javascript函数(ajax调用、谷歌地图),因此我不得不使用
--窗口状态
--javascript延迟
选项。我正在设置值
window.status=“ready\u to\u print;”
当一切都完成时。它的工作正常,pdf的渲染,因为它应该是


现在我想创建一个RubyonRails单元/集成测试,以检查HTML页面是否呈现为正确的状态。如何使用rpec、capybara或任何其他方法来测试这一点?

我不知道selenium ruby绑定中有一个公开的方法,但是
watir
DSL有一个方法,它的实现如下,应该可以做到这一点:

def status
  execute_script 'return window.status;'
end

我不知道selenium ruby绑定中有一个公开的方法,但是
watir
DSL有一个方法,它的实现如下,应该可以做到这一点:

def status
  execute_script 'return window.status;'
end

当您想要访问JS的值时,使用Capybara,您可以使用
evaluate\u script
。在这种情况下,这意味着

evaluate_script('window.status')
如果您想等待某个值,您可以将其包装在一个循环中(可能有一个超时),或者如果您现在只想验证它是一个特定的值

expect(evaluate_script('window.status')).to eq 'ready_to_print'

当您想要访问JS的值时,使用Capybara,您可以使用
evaluate\u script
。在这种情况下,这意味着

evaluate_script('window.status')
如果您想等待某个值,您可以将其包装在一个循环中(可能有一个超时),或者如果您现在只想验证它是一个特定的值

expect(evaluate_script('window.status')).to eq 'ready_to_print'