无法在Laravel Dusk中选中复选框元素

时间:2019-12-04 08:16:01

标签: laravel laravel-dusk laravel-dusk2

我正在尝试使用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>

欢迎任何建议。谢谢。

1 个答案:

答案 0 :(得分:1)

之所以会发生这种情况,是因为正在应用CSS,该复选框将复选框移到了标签的后面。有两种方法可以选中该复选框。

  1. 您可以在标签上拨打click

    $browser->click("label[data-v-c1e51704='']");
    
  2. 您可以在复选框上呼叫sendKeys

    $browser->element("#company-search-type-Investor")->sendKeys(WebDriverKeys::SPACE)