【发布时间】:2017-10-12 17:00:37
【问题描述】:
我正在尝试通过 CSS 类和 ID 查找链接,但总是出错:Capybara::ElementNotFound: Unable to find css ...
实际的一段代码是:
find('#bucket_resources_containers > #user_base_widget.widget >
div.widget_header > div.right.may-
edit.control.button.add.icon.add_options > a.tasksy.options').click
【问题讨论】:
-
由于您尝试点击的元素没有内容,它实际上在页面上是否有任何大小?如果不是,它将被视为不可见。此外,使用特定的选择器只会使您的测试变得非常脆弱,至少不需要一个 id 选择器,因为另一个应该仍然唯一地标识一个元素,并且您指定的大多数类可能是不必要的。
-
@ThomasWalpole,我知道它应该类似于
find('#bucket_resources_containers > #user_base_widget > div > div > a').click,但只找到第一个div元素'#bucket_resources_containers。 -
@ThomasWalpole 元素不可见。一切正常。
-
实际上它应该是唯一标识您想要的元素的最小相关选择器 - 在显示的情况下,假设我猜测不同类的含义是正确的,我可能会做类似的事情.
find('#user_base_widget .widget_header .add_options a.options')
标签: ruby ruby-on-rails-4 capybara rspec-rails