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

Offen
#4,632 17 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
38/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Ruhig
Tech-Stack
javascript, node.js, playwright
Bereich
testing-qa

Rechercherichtung

Beginnen Sie mit lib/helper/Playwright.js:2854, wo der Fehler gemeldet wird, und dem aufrufenden Test in codecept/user-logs.spec.js:39. Reproduzieren Sie die Regression mit Playwright 1.49.1 über CodeceptJS 3.6.7 und 3.6.9, untersuchen Sie anschließend das Verhalten von waitForText und fügen Sie einen Regressionstest hinzu, falls sich die Ursache isolieren lässt. Erledigt ist die Aufgabe, wenn der sichtbare Zeitstempel gefunden wird, ohne nicht zusammenhängende Textprüfungen abzuschwächen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

stale

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

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.

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.<anonymous> (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

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:

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'
    }
  }
}
Vorherrschende Sprache
JavaScript
Sterne
4.2k
Forks
756
Ø Merge
2 T. 9 Std.
Gemergte PRs (30 T.)
16

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus codeceptjs/CodeceptJS

Alle Issues in codeceptjs/CodeceptJS

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.