问题描述
我在使用 CodeceptJS 和 puppeteer 测试 React 应用程序时遇到了一个非常令人沮丧的问题 - 它仅在暂停模式下才能找到带有自定义定位器的元素。
我的自定义定位器是 data-test-id
。我使用 I.seeElement("$id-of-element-here")
和 I.seeNumberOfElements("$test-id",X)
定位元素。
当我的测试暂停并且我手动移动到测试的每个步骤时,这完美工作,但是当测试从开始到执行时不起作用完成 - 根本找不到目标元素。
有时我可以用 I.wait(X)
或 I.refreshPage()
来解决这个问题,但我现在遇到了这些都没有帮助的情况。
我确实使用 Chrome 和 Chromium 的开发工具在 HTML 中看到了 data-test-id
属性。也没有错别字。
显示目标元素的示例没有多大意义,因为问题似乎是随机发生的,我无法看到发生这种情况的地点/时间的任何模式。
这些是自定义定位器插件的设置,在 codecept.conf.js
中:
plugins{
...
customLocator: {
enabled: true,attribute: 'data-test-id',},...
}
任何帮助将不胜感激! :)