我想在运行任何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. 在Java中等待Google Dataproc SparkJob的最佳方式是什么?
- 2. 等待在QTP中加载帧的最佳方式是什么?
- 3. 等待UI控件的最佳方式是什么?
- 4. 什么是等待GPS定位的最佳方式?
- 5. 在JavaScript中添加事件的最佳方式是什么?
- 6. 在ASP.NET中订阅事件的最佳方式是什么?
- 7. 量角器:等待自定义事件的最佳方式
- 8. 等待.forEach()完成的最佳方式
- 9. 等待WCF服务的最佳方式?
- 10. 在C#中做事情的最佳方式是什么?
- 11. 什么是从ViewModle打开xaml窗口并等待DialogResult的最佳方式?
- 12. 什么是使用struts框架创建等待页面的最佳方式
- 13. 写入事件日志条目的最佳方式是什么?
- 14. 从轮询转为事件的最佳方式是什么?
- 15. 回调/ noftify事件父页面的最佳方式是什么?
- 16. 使用SDL/C++处理事件的最佳方式是什么
- 17. 什么是Selenium中使用的最佳等待命令
- 18. 在ActionScript/Flex 3中将事件与类关联的最佳方式是什么?
- 19. 什么是在Java中处理延迟事件的最佳方式
- 20. 在C中实现链接事件的最佳方式是什么?
- 21. 在Javascript中处理多个关键事件的最佳方式是什么?
- 22. 在JavaScript中切换点击事件的最佳方式是什么?
- 23. 在Perl中解析Excel文件的最佳方式是什么?
- 24. 在Ruby中写入文件的最佳方式是什么?
- 25. 在Delphi中URLEncode文件名的最佳方式是什么?
- 26. 什么是在PHP中创建XLS文件的最佳方式
- 27. 在PHP中包含文件的最佳方式是什么?
- 28. 在C#中生成KML文件的最佳方式是什么?
- 29. 在php中缓存文件的最佳方式是什么?
- 30. 键入()的最佳方式是什么?