如何测试 window.status 变量
how to test window.status variable
我正在使用 wkhtmlpdf 库从 HTML 页面转换 pdf。此页面依赖大量 javascript 函数(ajax 调用,google 映射),因此我不得不使用 --window-status
和 --javascript-delay
选项。当一切都完成时,我正在设置值 window.status="ready_to_print;"
。它工作正常,pdf 正在按应有的方式呈现。
现在我想在 rails unit/integration 上创建一个 ruby 测试来检查 HTML 页面是否已呈现到正确的状态。我如何使用 rpec、capybara 或任何其他方式对此进行测试?
我不知道 selenium ruby 绑定中有一个暴露的方法,但是 watir
DSL 有一个 Browser::status
方法,它的实现如下,应该做诀窍:
def status
execute_script 'return window.status;'
end
当您想访问您使用的 JS 事物的值时使用 Capybara evaluate_script
。在这种情况下,这意味着
evaluate_script('window.status')
如果你想等待它成为某个值,你可以将它包装在一个循环中(可能有超时),或者如果你现在只想验证它是一个特定值
expect(evaluate_script('window.status')).to eq 'ready_to_print'
我正在使用 wkhtmlpdf 库从 HTML 页面转换 pdf。此页面依赖大量 javascript 函数(ajax 调用,google 映射),因此我不得不使用 --window-status
和 --javascript-delay
选项。当一切都完成时,我正在设置值 window.status="ready_to_print;"
。它工作正常,pdf 正在按应有的方式呈现。
现在我想在 rails unit/integration 上创建一个 ruby 测试来检查 HTML 页面是否已呈现到正确的状态。我如何使用 rpec、capybara 或任何其他方式对此进行测试?
我不知道 selenium ruby 绑定中有一个暴露的方法,但是 watir
DSL 有一个 Browser::status
方法,它的实现如下,应该做诀窍:
def status
execute_script 'return window.status;'
end
当您想访问您使用的 JS 事物的值时使用 Capybara evaluate_script
。在这种情况下,这意味着
evaluate_script('window.status')
如果你想等待它成为某个值,你可以将它包装在一个循环中(可能有超时),或者如果你现在只想验证它是一个特定值
expect(evaluate_script('window.status')).to eq 'ready_to_print'