我正在努力让一些验收测试与Capybara合作。该应用程序的主要部分利用Polymer。应用程序的一些关键部分需要测试才能等待Polymer库和应用程序代码加载。是否有以聚合物为中心的方式来等待Polymer和应用程序加载。我目前正在使用睡眠语句,但这在测试运行时间确实很膨胀。
答案 0 :(得分:1)
我认为您应该听取WebComponentsReady
事件,在加载所有Polymer元素时会触发它。
https://github.com/webcomponents/webcomponentsjs#webcomponentsready
答案 1 :(得分:0)
似乎聚合物FOUC预防在身体上使用“未解决的”属性,一旦聚合物完成元素的初始化就会被去除。如果你已将该属性放在身体上,那么
expect(page).not_to have_selector('body[unresolved]')
等待聚合物完成加载
另一种方法是将WebComponentsReady事件的侦听器添加到代码中,该代码在触发时在body元素上设置数据属性,然后让Capybara找到具有该属性的body。