codeceptjs / codeceptjs/CodeceptJS

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

Beschreibung

#### 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] Stopping recording promises
```

```js
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

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

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