Я использую кукловод, чтобы проверить интерфейс моего сайта.Однако, когда я показываю баннер в таблице, я получаю сообщение об ошибке,
Мой HTML table-body
выглядит следующим образом:
<tbody>
<tr role="row" class="odd">
<td tabindex="0">7/9/2019</td>
<td>Product 1</td>
<td>Active</td>
<td><a href="test">Category 1</a></td>
</tr>
<tr role="row" class="even">
<td style="width: 0; padding: 0"></td>
<td style="width: 0; padding: 0"></td>
<td style="width: 0; padding: 0"></td>
<td style="width: 0; padding: 0"></td>
<td style="width: 0; padding: 0"></td>
<td style="width: 0; padding: 0"></td>
<td style="width: 0; padding: 0"></td>
</tr>
Мой код page.evaluate () выглядит следующим образомследующее:
data = await page.evaluate(async () => {
let data = [];
let grabFromRow = (row, child) => {
const td = row
.querySelector(`td:nth-child(${child})`)
return td ? td.innerText.trim() : null
}
let grabLinkFromRow = (row, child) => {
const td = row
.querySelector(`td:nth-child(${child}) > a`).getAttribute("href"); // here I get the error
return td ? td : null;
};
let rows = "#producttable > tbody > tr"
let tableRows = document.querySelectorAll(rows)
for (const tr of tableRows) {
data.push({
date: grabFromRow(tr, 1),
product: grabFromRow(tr, 2),
status: grabFromRow(tr, 3),
category: grabFromRow(tr, 4),
categoryLink: grabLinkFromRow(tr, 4),
});
}
return data;
});
Любые предложения, как пропустить эти строки emtpy и все еще выполнить мой сценарий тестирования?
Я ценю ваши ответы!