Codeceptjs / Puppeteer测试仅在Jenkins上失败:“节点不可见或不是HTMLElement”

时间:2019-06-04 12:35:37

标签: jenkins puppeteer codeceptjs

我有一个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上失败?

1 个答案:

答案 0 :(得分:0)

最后,詹金斯与这个问题无关。

似乎Puppeteer可能需要一些时间才能单击新的SVG DOM元素。 在点击之前放置I.wait(3)即可解决问题。

一种更安全的策略是在单击任何内容之前系统地放置I.retry({retries: 3, maxTimeout: 1000 }).click(selector);

另请参见