Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Self healing AI capability doesn't repeat waitForVisible/waitForElement step healing for more than 1 BDD scenario (test)

Offen
#4,527 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
javascript, nodejs, playwright
Bereich
ai, testing-qa

Rechercherichtung

Start with the heal.addRecipe('ai', ...) configuration and the ai.healFailedStep entry point shown in the issue. Reproduce the two-scenario BDD case with waitForVisible or waitForElement on the listed CodeceptJS, Node.js, and Playwright versions, then trace why healing runs only for the first scenario. Done means the second scenario also invokes self-healing and its logs show the healing attempt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

stale
What are you trying to achieve?

We would like to use self healing AI capability https://codecept.io/ai/#self-healing-tests on CI with non default steps (waitForVisible/waitForElement) for more then 1 BDD scenario (test)

@test
Feature: Check that self healing works for more then 1 scenario

    Scenario: Self-healing test 1
        Given The tests is logged into Application
        
    Scenario: Self-healing test 2
        Given The tests is logged into Application
What do you get instead?

Self-healing is being invoked for the first scenario (test) on waitForVisible step and doesn't for the second on the same step.

  • logs from 1st scenario:
    [1]  Error (Non-Terminated) | Error: element ({id: usernameee}) still not present on page after 15 sec
locator.waitFor: Timeout 15000ms exceeded.
Call log:
  - waiting for locator('#usernameee').first()
 | async (err) => { isHealing = true if (caughtError ...
  codeceptjs:heal Self-healing started I.waitForElement({"id":"usernameee"}, 15) +0ms
      › Trying to heal I.waitForElement({"id":"usernameee"}, 15) step
  • logs from 2nd scenario:
    [3]  Error (Non-Terminated) | Error: element ({id: usernameee}) still not present on page after 15 sec
locator.waitFor: Timeout 15000ms exceeded.
Call log:
  - waiting for locator('#usernameee').first()
 | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error | Error: element ({id: usernameee}) still not present on page after 15 sec
locator.waitFor: Timeout 15000ms exceeded.
Call log:
  - waiting for locator('#usernameee').first()
 undefined...
    [3] <teardown>  Stopping recording promises
heal.addRecipe('ai', {
  priority: 1,
  prepare: {
    html: ({ I }) => I.grabHTMLFrom('body'),
  },
  steps: [
    'waitForVisible',
    'waitForInvisible',
    'waitForElement',
  ],
  fn: async args => {
    return ai.healFailedStep(args);
  },
});
Details
  • CodeceptJS version:3.6.6
  • NodeJS Version:18.17.0
  • Operating System:MacOS
  • Playwright: 1.46
Vorherrschende Sprache
JavaScript
Sterne
4.2k
Forks
756
Ø Merge
2 T. 10 Std.
Gemergte PRs (30 T.)
18

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.