getgauge / taiko

A node.js library for testing modern web applications
https://taiko.dev
MIT License
3.57k stars 453 forks source link

Reusing SearchElement #2590

Open lufton opened 2 years ago

lufton commented 2 years ago

Discussed in https://github.com/getgauge/taiko/discussions/2586

Originally posted by **lufton** May 16, 2022 I have a step definition that is failing: ``` step("Enter into text field", async function(value, fieldLabel) { let txtBox = await textBox(below(text(fieldLabel)), near(text(fieldLabel))); await scrollTo(txtBox, { blockAlignment: 'center', inlineAligment: 'center' }); await write(value, into(txtBox)); }); ``` But it fails at `await write(value, into(txtBox))` line: > Error: TextBox below Element with text THE TEXT NEXT TO ELEMENT and near Element with text THE TEXT NEXT TO ELEMENT not found This is weird, because `await scrollTo(txtBox, { blockAlignment: 'center', inlineAligment: 'center' })` works as expected, so there is corresponding element. Also if I replace `txtBox` with `textBox(below(text(fieldLabel)), near(text(fieldLabel)))` inside `scrollTo` and `write` method calls, then this code words. So it looks like as soon as I used txtBox variable it is not holding actual element anymore.

Steps to reproduce:

openBrowser();
goto("https://gauge.org/gauge-taiko/");
let lnk = await link("Taiko", below("Explore")); // Footer menu item
await scrollTo(lnk);
await click(lnk);
lufton commented 2 years ago

@zabil @NivedhaSenthil any update on this?