我想在运行任何TestCafe测试之前等待页面中的Web组件升级(换句话说,在运行测试之前等待WebComponentsReady
事件)。做这个的最好方式是什么?在TestCafe中等待'WebComponentsReady'事件的最佳方式是什么?
1
A
回答
1
在引发DOMContentReady
事件后,TestCafe开始在页面上执行任何操作。正如我所看到的,WebComponentsReady
事件可以在DOMContentReady
之前提出。 TestCafe让你等待通过ClientFunction在浏览器中的一些事件:
const waitForWebComponentsReady = ClientFunction(() => {
return new Promise(resolve => {
window.addEventListener('WebComponentsReady', resolve);
});
});
await waitForWebComponentsReady();
但是,请注意TestCafe不能保证被提出的WebComponentReady
事件之前该代码就会被执行。因此,这个承诺不会得到解决。
作为解决方案,您可以找到另一种方法来确定是否加载了所需的Web组件。例如,您可以检查一些元素在页面上可见:
await t.expect(Selector('some-element').visible).ok();
同时,TestCafe有一个特点,建议,add the capability to execute a custom script before page initialization scripts。当功能实现时,您将能够使用类似于此的代码:
import { ClientFunction } from 'testcafe';
const initScript = `window.addEventListener('WebComponentsReady',() => window.WebComponentsLoaded = true);`;
fixture `My Fixture`
.page `http://example.com`
.addScriptToEachPage(initScript)
.beforeEach(async t => {
await t.expect(ClientFunction(() => window.WebComponentsLoaded)()).ok();
});
相关问题
- 1. 在C#中等待的最佳方式是什么?
- 2. 等待在QTP中加载帧的最佳方式是什么?
- 3. 在Java中等待Google Dataproc SparkJob的最佳方式是什么?
- 4. 等待UI控件的最佳方式是什么?
- 5. 什么是等待GPS定位的最佳方式?
- 6. 在JavaScript中添加事件的最佳方式是什么?
- 7. 在Ember.js中处理事件的最佳方式是什么?
- 8. 在ASP.NET中订阅事件的最佳方式是什么?
- 9. 在MS Access VBA中等待表单被关闭的最佳方式是什么?
- 10. 什么是等待动画在MVVM中完成的最佳方式?
- 11. 量角器:等待自定义事件的最佳方式
- 12. OSGI:什么是等待声明式服务组件启动的最佳方法?
- 13. 在Python中使用“不等于”的最佳方式是什么?
- 14. StackExchange.Redis - 等待锁的最佳方式
- 15. 等待.forEach()完成的最佳方式
- 16. 等待WCF服务的最佳方式?
- 17. 比较文件平等的最佳方式是什么?
- 18. 在C#中做事情的最佳方式是什么?
- 19. 什么是使用struts框架创建等待页面的最佳方式
- 20. 等待UIView动画循环完成的最佳方式是什么?
- 21. 什么是从ViewModle打开xaml窗口并等待DialogResult的最佳方式?
- 22. 活动选择。做这件事的最佳方式是什么
- 23. 回调/ noftify事件父页面的最佳方式是什么?
- 24. 使用SDL/C++处理事件的最佳方式是什么
- 25. 从轮询转为事件的最佳方式是什么?
- 26. 将事件传递给ViewModel的最佳方式是什么?
- 27. 写入事件日志条目的最佳方式是什么?
- 28. 什么是Selenium中使用的最佳等待命令
- 29. 在Java中创建XML文件的最佳方式是什么?
- 30. 什么是在oracle中做条件选择的最佳方式