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 摘要。