Testcafe - 使用 id 选择复选框总是以完全超时等待结束

Testcafe - Selecting checkbox using id always end up with the full timeout wait

我们的 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" 我最终不得不等待超时持续时间才能找到元素。有谁知道为什么?

所以在我必须为 iframe 工作之前一直工作正常,虽然我已经切换回大型机但是我会得到错误,如果我使用 DOM 树上没有匹配项 for="supplementaryAgreement" 现在。它仍然可以与 id="supplementaryAgreement" 一起使用,但必须等待它超时似乎效率不高。

我认为造成此问题的原因在于复选框的复杂标记。似乎复选框被 label::after 元素重叠,所以 TestCafe 无法正确找到复选框。另一个问题是 label[for=supplementaryAgreement]height 等于 0。

在这种情况下,您减少选择器超时的想法是一个很好的解决方法。它不起作用,因为存在语法错误。请尝试以下方法:Selector('#supplementaryAgreement', { timeout: 1000 })