Testcafe - установка флажка с использованием идентификатора всегда заканчивается полным тайм-аутом ожидания - PullRequest
0 голосов
/ 04 мая 2020

Наши html коды для флажка всегда выглядят примерно так

<div id="paymentCheckBoxesMod" class="c-form__checkbox-container u-spacing__margin-bottom--16 u-spacing__margin-top--16"> <input type="checkbox" id="supplementaryAgreement" aria-describedby="paymentsCheckboxLabel"> <label for="supplementaryAgreement"> </label> <div id="paymentsCheckboxLabel"> Jag godkänner Storytels <span id="purchasetermspopup">Köpvillkor</span> & <span id="privacypolicypopup">Integritetspolicy</span> </div> </div>

Я всегда находил элемент, используя метку for="supplementaryAgreement", потому что если я использую вход id="supplementaryAgreement" В конечном итоге мне приходится ждать времени ожидания, прежде чем элемент будет найден. Кто-нибудь знает, почему?

, чтобы все работало нормально, пока мне не пришлось работать на iframes, и хотя я уже переключился обратно на мэйнфрейм, я получу ошибку, что в DOM-дереве нет совпадения, если я использую for="supplementaryAgreement" сейчас. Он по-прежнему работает с id="supplementaryAgreement", но ожидание его ожидания не кажется эффективным.

1 Ответ

0 голосов
/ 07 мая 2020

Я думаю, что причина этой проблемы в сложной разметке вашего флажка. Кажется, что флажок перекрывается элементом label::after, поэтому TestCafe не может правильно найти флажок. Другая проблема заключается в том, что label[for=supplementaryAgreement] имеет height, равное 0.

Ваша идея с уменьшением времени ожидания для селектора - хороший обходной путь в этом случае. Это не работает, так как есть синтаксическая ошибка. Пожалуйста, попробуйте следующий подход: Selector('#supplementaryAgreement', { timeout: 1000 })

...