@ nonyck
Спасибо за сообщение о проблеме.
Вот обходной путь. Используйте цикл вместо foreach, как показано ниже
HTML
<!DOCTYPE html>
<html>
<body>
<h2>HTML Forms</h2>
<form action="/action_page.php">
First name: <input type="text" name="firstname" placeholder="first">
<br>
Last name: <input type="text" name="lastname" placeholder="last">
<br><br>
<input type="submit" value="Submit">
</form>
<p>If you click the "Submit" button, the form-data will be sent to a page called "/action_page.php".</p>
</body>
</html>
* Create following task
| fiels | value |toRightOf |
|--------|----------------|-----------|
| first | test task name |First name:|
| last | urgent |Last name: |
step("Create following task <table>", async function(table) {
for(var i=0;i<table.rows.length;i++)
{
console.log(table.rows[i].cells[0])
console.log(table.rows[i].cells[1])
console.log(table.rows[i].cells[2])
await write(table.rows[i].cells[1], into(textBox({placeholder:table.rows[i].cells[0]}, toRightOf(table.rows[i].cells[2]))));
}
Проблема с foreach может быть отслежена на https://github.com/getgauge/taiko/issues/646. Пожалуйста, не стесняйтесь добавлять больше деталей / мыслей.
Вот пара наблюдений
- Вы используете
await write(row.cells[1], into(inputField({placeholder:"Type here"}, toRightOf('Name of the task'))));
С заполнителем "Введите здесь" и toRightOf(<hard coded value>)
, вы будете выбирать один и тот же элемент снова и снова. Потому что только потому, что значение добавлено в текстовое поле, заполнитель не становится недействительным.
- $ - запасной вариант для выбора элементов. Вы можете использовать
click(<wordings visible on screen>)
. Тайко позаботится о том, чтобы найти элемент для вас.
PS: Если вы сможете поделиться этим HTML-кодом, он сможет вам лучше помочь!