我有这样的代码:
+
我想点击Capybara::Poltergeist::InvalidSelector:
The browser raised a syntax error while trying to evaluate css selector ".activities#28"
链接。生成的表单用javascript打开,所以我需要Poltergeist点击它。但它返回一个错误:
it "can open form", js: true do
within(".activities#28") do
click_link "+"
end
end
这是我的测试:
{{1}}
那为什么它找不到元素?
答案 0 :(得分:1)
这里有一些问题
您的CSS选择器“.activities#28”在技术上是非法的。这是因为CSS选择器中的id标识符不能以数字开头,除非它被转义。要解决您的CSS选择器需要成为.activities#\32 8
一旦修复,它将与您显示的HTML不匹配,因为显示的HTML的ID为“3”而不是“28”
您显示的HTML有两个具有相同ID(“3”)的元素。这是非法的HTML,因为ID必须在页面上是唯一的。您是否尝试存储需要与页面上的该元素绑定的记录的ID?如果是这样的话,它可能会在数据属性中(这也会改变你的CSS选择器) - 尽管多次存储它也不是很有意义。
<td class="activities" data-id="3">
<a class="btn add_activity" href="#" data-id="3">+</a>
</td>