2

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

欢迎任何建议。谢谢。

4

1 回答 1

1

这可能是因为正在应用 CSS 将复选框移动到标签后面。有两种方法可以选中复选框。

  1. 您可以click在标签上调用:

    $browser->click("label[data-v-c1e51704='']");
    
  2. 您可以调用sendKeys复选框:

    $browser->element("#company-search-type-Investor")->sendKeys(WebDriverKeys::SPACE)
    
于 2020-04-18T09:34:13.947 回答