Пишу автотест на selenium webdriver js, в котором нужно вывести содержимое тегов div class="item" (' Item 1 ', ... ' Item 4 '). Пробовал получить массив класса list с дочерними элементами item и найти все элементы по классу item и перебрать в цикле, но у меня ничего не вышло. Подскажите как это сделать
autotest.js:
const { By, Key, until } = require("selenium-webdriver");
const webdriver = require("selenium-webdriver");
require("chromedriver");
let promise = require("selenium-webdriver").promise;
await driver.get('http://www.test.site') ;
let pendingElements = driver.findElements(By.className('item'));
pendingElements.then(function (elements) {
let pendingHtml = elements.map(function (elem) {
return elem.getInnerHtml();
});
promise.all(pendingHtml).then(function (allHtml) {
console.log(allHtml);
// Здесь по логике я должен получить массив значений (Item 1, Item 2 ...)
});
});
test.site.html:
<body>
<div class="list>
<div class="item">
<div>
<strong> Item 1 </strong>
</div>
</div>
<div class="item">
<div>
<strong> Item 2 </strong>
</div>
</div>
<div class="item">
<div>
<strong> Item 3 </strong>
</div>
</div>
<div class="item">
<div>
<strong> Item 4 </strong>
</div>
</div>
</div>
</body>
Данный код выдает ошибку (not a function):
TypeError: pendingElementsConfigList.then is not a function at autoTest (/home/automation_testing/tests/autoTest.js:69:35) at process._tickCallback (internal/process/next_tick.js:68:7)
если вывести нулевой элемент:
console.log(pendingElements[0]); то в консоли выведет это:
WebElement {
driver_: Driver { session_: Promise { [Session] },
executor_: Executor { w3c: true, customCommands_: [Map], log_: [Logger] },
fileDetector_: null, onQuit_: [Function: onQuit] },
id_: Promise { '781fdd8b-08e5-4aee-8ce6-c3b800a75956' }
}
из этого как-то нужно вывести значения элементов с классом item