我正在尝试使用Dusk在Laravel 6.0上为我的应用程序做测试用例。我在选择复选框时遇到了一些困难,因为找不到“检查”元素。 根据文档,我使用了check方法,并使用ID
定义了选择器我的ID是:company-search-type-Investor,我的代码是:
$browser->scrollToElement('#company-search-type-Investor')
->assertNotChecked('#company-search-type-Investor')
->check('#company-search-type-Investor')
->pause(1000)
奇怪的是,我对->assertNotChecked('#company-search-type-Investor')
的测试通过了,但是->check('#company-search-type-Investor')
给出了错误:
Facebook \ WebDriver \ Exception \ UnrecognizedExceptionException:元素单击被拦截:元素
<input data-v-c1e51704="" id="company-search-type-Investor" type="checkbox">
在点(192,497)不可单击。其他元素将获得点击:<label data-v-c1e51704="" class="kt-checkbox" style="margin-bottom: 6px; font-size: 1.1rem;">...</label>
欢迎任何建议。谢谢。
答案 0 :(得分:1)
之所以会发生这种情况,是因为正在应用CSS,该复选框将复选框移到了标签的后面。有两种方法可以选中该复选框。
您可以在标签上拨打click
:
$browser->click("label[data-v-c1e51704='']");
您可以在复选框上呼叫sendKeys
:
$browser->element("#company-search-type-Investor")->sendKeys(WebDriverKeys::SPACE)