getgauge / taiko

A node.js library for testing modern web applications

Home Page:https://taiko.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Reusing SearchElement

lufton opened this issue · comments

Discussed in #2586

Originally posted by lufton May 16, 2022
I have a step definition that is failing:

step("Enter <value> into <fieldLabel> 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);