【问题标题】:Codeceptjs/Puppeteer test fails ONLY on Jenkins: "Node is either not visible or not an HTMLElement"Codeceptjs/Puppeteer 测试仅在 Jenkins 上失败:“节点不可见或不是 HTMLElement”
【发布时间】:2019-10-19 23:48:25
【问题描述】:

我有一个 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” 失败并显示消息:“节点不可见或不是 HTMLElement”。

输出屏幕截图显示页面已正确加载。这些屏幕截图在本地和 Jenkins 管道上都是相同的。

是什么导致测试在本地运行并在 Jenkins 上失败?

【问题讨论】:

    标签: jenkins puppeteer codeceptjs


    【解决方案1】:

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

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

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

    另见

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      相关资源
      最近更新 更多