Capybara说,即使我看到它也找不到CSS选择器

时间:2014-08-17 05:54:46

标签: testing ruby-on-rails-4 rspec capybara assert

真的很迷惑,这是测试输出:

Failure/Error: page.assert_selector("#borrower cancel")
 Capybara::ExpectationNotMet:
   expected to find css "#borrower cancel" but there were no matches
 # ./spec/features/borrow_dashboard_spec.rb:354:in `block (3 levels) in <top (required)>'

我做了save_and_open_page(对于正确的测试是肯定的),这是来自Inspect Element的相关摘录:

enter image description here

发生了什么事?!在类似的情况下,其他寻找#borrowed item的测试也表示无法找到它。我尝试在<td><span>中添加ID,然后尝试将其设为一个字符串,例如borrowed_item。到目前为止,没有任何工作。

1 个答案:

答案 0 :(得分:0)

正如@AndreyBotalov所指出的,问题是id属性包括空格,这是无效的html。最好的解决方案是将id属性修复为不使用空格。

如果这不是一个选项,您可以使用属性选择器而不是id选择器。在属性选择器中,确保在id属性值周围包含引号:

page.assert_selector('[id="borrower cancel"]')