codeceptjs / codeceptjs/CodeceptJS

Since Codecept 3.6.9, our test that looks for a date time doesn't find it (but it's there)

未关闭
#4,632 17 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
stale
主要语言
JavaScript
星标
4.2k
派生
757
平均合并
2 天 9 小时
30 天内合并 PR
16

描述

Hi, we're seeing this issue and we've tried pinning to older versions - 3.6.7 is OK.

#### What are you trying to achieve?
We have a test that's been passing up until now and does so with 3.6.7.

I can't use 3.6.8 because of Error: Cannot find module 'invisi-data' (I noticed a hotfix around this in the commits).

It started failing today (it could have failed sooner, we only noticed it today).

#### What do you get instead?

The following (I've noticed the UI here says 3.6.2, but when I do an `npm list` I am on 3.6.7, 3.6.8, or 3.6.9 depending on the test I am doing - we want to be on the latest and tried downgrading twice and as part of that verified 3.6.7 is ok).

![image](https://github.com/user-attachments/assets/af85645e-bf34-48f5-a19a-690bee4db82c)

This looks to me like it finds our text and then says it hasn't...

> Provide console output if related. Use `--verbose` mode for more details.

```bash
1) User Logs
It renders a User Log table:
Text "2024-09-05 04:14:32.000" was not found on page after 1 sec.
at Playwright.waitForText (node_modules/codeceptjs/lib/helper/Playwright.js:2854:26)
at async Test. (codecept/user-logs.spec.js:39:3)

2) User Logs
It renders a new User Log table:
Text "2024-09-06 10:14:50.000" was not found on page after 1 sec.
at Playwright.waitForText (node_modules/codeceptjs/lib/helper/Playwright.js:2854:26)
at runNextTicks (node:internal/process/task_queues:60:5)
at process.processTimers (node:internal/timers:509:9)
```

> Provide test source code if related
Sorry - I don't have a minimal reproduce yet - we basically have a simple logging page and we're looking for an event time on it in a row

```js
Scenario('It renders a User Log table', async ({ I }) => {
I.amOnPage('http://localhost:5057/iframe.html?args=&id=demo-logs-page--renders-correctly&viewMode=story')

I.waitForText('Logs', 10)

await sleep(10000)

// Check there is a table
I.seeElement('.IntegrationDataTable')
I.seeNumberOfVisibleElements('.UserLogsPage__Table tbody tr[data-parent-row="true"]', 14)
I.see('14 of 10000')

// Check column headings
I.see('Event time (UTC)')
I.see('Message')
I.see('Transaction ID')
I.see('Flow ID')
I.see('Log level')

// Check first row
let firstRow = locate('.UserLogsPage__Table tbody tr[data-parent-row="true"]').first()
console.log('first', firstRow)

await within(firstRow, () => {
I.waitForText('2024-09-05 04:14:32.000') <---------- see here
})
```

### Details

* CodeceptJS version: 3.6.9
* NodeJS Version: we've tried with Node.js 22.9.0 and 18.20.4
* Operating System: I'm on Mac OSX
* puppeteer || webdriverio || testcafe version (if related)

We are using Playwright 1.49.1

* Configuration file:

```js

exports.config = {
tests: './codecept/*.spec.js',
output: './codecept/screenshots',
retry: 2,
helpers: {
Playwright: {
url: 'http://localhost:9010',
show: false,
browser: 'chromium',
pressKeyDelay: 2,
waitForAction: 5000
}
},
bootstrap: null,
mocha: {},
name: 'ui-logging',
plugins: {
pauseOnFail: {},
retryFailedStep: {
enabled: true
},
tryTo: {
enabled: true
},
screenshotOnFail: {
enabled: true
},
customLocator: {
enabled: true,
attribute: 'data-testid'
}
}
}
```

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。