我有一个Codeceptjs / Puppeteer测试,该测试在Kubernetes精心安排的容器上本地运行,并使用来自AWS的数据。
示例代码
...
I.waitForVisible('#§Brand§amazon + div', 30);
I.scrollTo('#§Brand§amazon + div', 30); // Jenkins stops here
...
我也尝试过
...
I.waitForVisible('#§Brand§amazon + div', 30);
I.click('#§Brand§amazon + div'); // Jenkins stops here
...
当我在Jenkins管道中运行相同的测试(所有内容都在AWS上运行)时,总是使用K8S进行管理,因此步骤“ I.scrollTo” 或“ I.click” < / em>失败,并显示以下消息:“节点不可见或HTMLElement”。
输出的屏幕快照显示页面已正确加载。这些屏幕快照在本地和Jenkins管道上都是相同的。
是什么使测试在本地运行并在Jenkins上失败?
答案 0 :(得分:0)
最后,詹金斯与这个问题无关。
似乎Puppeteer可能需要一些时间才能单击新的SVG DOM元素。
在点击之前放置I.wait(3)
即可解决问题。
一种更安全的策略是在单击任何内容之前系统地放置I.retry({retries: 3, maxTimeout: 1000 }).click(selector);
。
另请参见