Есть список, в нем нужно найти определенный элемент и и нажать на его дочерний элемент:
html:
<body>
<div class="list>
<div class="item">
<div>
<p> Item 1 </p>
</div>
<button class='btn'> 1 </button>
<button class='btn'> 2 </button>
</div> <div class="item">
<div>
<p> Item 2 </p>
</div>
<button class='btn'> 1 </button>
<button class='btn'> 2 </button>
</div>
<div class="item">
<div>
<p> Item 3 </p>
</div>
<button class='btn'> 1 </button>
<button class='btn'> 2 </button>
</div>
<div class="item">
<div>
<p> Item 4 </p>
</div>
<button class='btn'> 1 </button>
<button class='btn'> 2 </button>
</div>
</div>
</body>
js:
let findButtons = await driver.findElements(By.className('item'));
let buttons = findButtons.map(elem => elem.getText()); const allButtons = await Promise.all(buttons);
// *** Find button ***
let tButton;
for (let i = 0; i < findButtons.length; i++) {
if (allButtons[i] == `Item 3`) {
tButton = await findButtons[i];
console.log(tButton.children); // должен вывести список дочерних элементов, но выводит underfined
tButton.click(); // нажимаем на элемент - действие срабатывает
// здесь нужно нажать на button 2 элемента с содержимым `Item 3`
}
}