Почему Testcafe ожидает появления элемента elementl, когда элемент уже существует?
Я использую TestCafe 0.22.0 и в beforeEach
У меня есть этот код:
const checkedBoxes = Selector('input[type="checkbox"]')
for (let i = 0; i < await checkedBoxes.count; i++) {
t.click(Selector(`#product-${i} input`))
}
Когда я запускаю в Chrome, страница почти сразу отображает все, но testcafe все еще ждет около 5 секунд, прежде чем он нажимает любую кнопку-флажок. Каждый раз, когда он щелкает по флажку, он ждет еще 5 секунд, прежде чем щелкнет по следующему флажку.
Почему это происходит? Для testcafe должна быть возможность проверить все это сразу.
Это угловое 6 приложение.
1 ответ
Я не смог воспроизвести проблему с вашим тестовым кодом и моей страницей примера:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="product-0">
<input type="checkbox"/>
</div>
<div id="product-1">
<input type="checkbox"/>
</div>
<div id="product-2">
<input type="checkbox"/>
</div>
<div id="product-3">
<input type="checkbox"/>
</div>
<div id="product-4">
<input type="checkbox"/>
</div>
</body>
</html>
тестовый код:
import { Selector } from 'testcafe';
fixture `check`
.page `../pages/index.html`;
test('basic', async t => {
const checkedBoxes = Selector('input[type="checkbox"]');
for (let i = 0; i < await checkedBoxes.count; i++) {
await t.click(Selector(`#product-${i} input`));
}
});
Я не вижу никаких задержек в действиях клика. Кроме того, я обнаружил, что вы пропустили await
Ключевое слово перед t.click
действие. Если у вас все еще есть проблема, не могли бы вы предоставить нам минимальный пример, который демонстрирует проблему?