Cucumber 水豚在搜索中排除一个div?

Cucumber 水豚在搜索中排除一个div?,cucumber,capybara,Cucumber,Capybara,有没有办法告诉水豚在搜索页面时忽略div 差不多 page.assert_no_selector('a', :unless => '.an-excused-class a') 或者,在特定的步骤中,是否有方法告诉水豚不要计算隐藏元素。我已经在全球范围内看到了一些这样做的方法,但这不是我想要的 短暂性脑缺血发作 在Capybaras的默认断言中,没有办法告诉它忽略与选择器匹配的某些元素 默认情况下,Capybara找不到隐藏元素,如果通过更改Capybara.ignore\u hidden

有没有办法告诉水豚在搜索页面时忽略div

差不多

page.assert_no_selector('a', :unless => '.an-excused-class a')
或者,在特定的步骤中,是否有方法告诉水豚不要计算隐藏元素。我已经在全球范围内看到了一些这样做的方法,但这不是我想要的

短暂性脑缺血发作

  • 在Capybaras的默认断言中,没有办法告诉它忽略与选择器匹配的某些元素

  • 默认情况下,Capybara找不到隐藏元素,如果通过更改Capybara.ignore\u hidden\u elements选项覆盖了隐藏元素,则可以在断言中指定:visible选项

    page.assert\u no\u选择器('a',可见:true)

  • “可见”选项可以采用多个值:

    • true或:visible=>仅查找可见元素
    • false或:all=>查找元素,无论其可见性如何
    • :hidden=>仅查找不可见的元素
  • 在Capybaras的默认断言中,没有办法告诉它忽略与选择器匹配的某些元素

  • 默认情况下,Capybara找不到隐藏元素,如果通过更改Capybara.ignore\u hidden\u elements选项覆盖了隐藏元素,则可以在断言中指定:visible选项

    page.assert\u no\u选择器('a',可见:true)

  • “可见”选项可以采用多个值:

    • true或:visible=>仅查找可见元素
    • false或:all=>查找元素,无论其可见性如何
    • :hidden=>仅查找不可见的元素

    如果有两个相同的div,但其中一个是隐藏的,水豚将自动只查找可见的div

    但是,如果您使用选项在水豚的全局设置中具有相反的值:

    :visible
    

    将强制它只检查可见的div

    但是,如果使用可见性选项是完全不可能的,那么可以通过其他方式来判断是否存在可见性

    使用计数方法可以告诉您页面上命名div的编号是否正确:

    page.should have_css("ol li", :count => 2)
    
    或者,如果你知道div永远都是,那么说第三个:

    page.all("ol li")[3]
    
    最后,如果这些div包含在不同标签的单独HTML块中,您可以通过使用capybara链接在HTML中查找它们:

    page.find('#foo').find('.bar')
    
    这一信息的良好来源:


    如果有两个相同的div,但其中一个是隐藏的,水豚将自动只查找可见的div

    但是,如果您使用选项在水豚的全局设置中具有相反的值:

    :visible
    

    将强制它只检查可见的div

    但是,如果使用可见性选项是完全不可能的,那么可以通过其他方式来判断是否存在可见性

    使用计数方法可以告诉您页面上命名div的编号是否正确:

    page.should have_css("ol li", :count => 2)
    
    或者,如果你知道div永远都是,那么说第三个:

    page.all("ol li")[3]
    
    最后,如果这些div包含在不同标签的单独HTML块中,您可以通过使用capybara链接在HTML中查找它们:

    page.find('#foo').find('.bar')
    
    这一信息的良好来源: