在脚本标签中测试异步 属性

Test for async property in script tag

在 rspec 功能测试中,我想测试是否存在以下代码

<script src="/assets/application.js" async="async"></script>

如果我尝试

page.should have_css 'script', src: "/assets/application.js", async: 'async'

我收到一条错误消息,指出 :src, :async 是无效密钥。我想使用测试来确保在 heroku 上异步加载 application.js 文件。

我该如何测试?

有几个问题:首先,默认情况下,Capybara 不会查找不可见的元素(这包括脚本标签)。其次 :src 和 :async 不是 Capybara 所知道的。解决方案是在 css 选择器中包含 src 和异步要求,并传递 visible: false 选项,这样 Capybara 就会找到不可见的元素。

page.should have_css('script[async="async"][src="/assets/application.js"]', visible: false)