等待 Polymer 加载

Waiting for Polymer to load

我正在努力进行一些与 Capybara 一起使用的验收测试。该应用程序的主要部分利用了 Polymer。应用程序中有一些关键部分需要测试等待 Polymer 库和应用程序代码加载。是否有以 Polymer 为中心的方式来等待 Polymer 和应用程序加载。我目前正在使用睡眠语句,但这确实使测试膨胀 运行 次。

我认为你应该听取 WebComponentsReady 事件,它会在加载所有 Polymer 元素时触发。

https://github.com/webcomponents/webcomponentsjs#webcomponentsready

似乎聚合物 FOUC 预防使用 body 上的 'unresolved' 属性,一旦聚合物完成元素初始化,该属性就会被删除。如果您将该属性放在 body 上,则

expect(page).not_to have_selector('body[unresolved]')

将等待聚合物完成加载

另一种方法是将 WebComponentsReady 事件的侦听器添加到您的代码中,在触发时在 body 元素上设置 data-attribute,然后让 Capybara 查找 body具有该属性。