Capybara 正在寻找用户不可见的元素
Capybara is finding elements that would not be visible to the user
我正在使用水豚创建 RSpec 功能测试,用于使用 Bootstrap 选项卡的测试。
我的问题是,即使不使用 click_link "tab name"
,水豚仍然能够找到位于该选项卡中的元素。但是,当查看本地服务器中的页面时,选项卡运行正常。
水豚究竟是怎么找元素的?它是否以某种方式使用绕过引导选项卡的系统?
有什么办法可以解决这个问题吗?
可能涉及的因素:
- 出于各种原因,我正在处理的项目正在调用这些 "request" 测试而不是功能测试。这会改变水豚的某些行为吗?
更新:
- 我目前没有设置 js: true
。现在正在研究可能的解决方案。
此行为的原因是 :js 设置为 false,因此水豚默认使用基于机架的驱动程序。此驱动程序不处理大多数 CSS,并且 CSS 加上没有 JavaScript 支持意味着 bootstrap 选项卡将无法运行。因此,无论是否单击任何选项卡链接,每个选项卡基本上都可以同时查看和选择。这意味着仍然可以单击这些链接,但它没有执行任何操作。
归功于@ThomasWalpole(查看评论)
我正在使用水豚创建 RSpec 功能测试,用于使用 Bootstrap 选项卡的测试。
我的问题是,即使不使用 click_link "tab name"
,水豚仍然能够找到位于该选项卡中的元素。但是,当查看本地服务器中的页面时,选项卡运行正常。
水豚究竟是怎么找元素的?它是否以某种方式使用绕过引导选项卡的系统?
有什么办法可以解决这个问题吗?
可能涉及的因素:
- 出于各种原因,我正在处理的项目正在调用这些 "request" 测试而不是功能测试。这会改变水豚的某些行为吗?
更新:
- 我目前没有设置 js: true
。现在正在研究可能的解决方案。
此行为的原因是 :js 设置为 false,因此水豚默认使用基于机架的驱动程序。此驱动程序不处理大多数 CSS,并且 CSS 加上没有 JavaScript 支持意味着 bootstrap 选项卡将无法运行。因此,无论是否单击任何选项卡链接,每个选项卡基本上都可以同时查看和选择。这意味着仍然可以单击这些链接,但它没有执行任何操作。
归功于@ThomasWalpole(查看评论)