无法使用Capybara选中复选框

时间:2015-11-09 08:34:13

标签: checkbox capybara

我无法通过设置复选框进行测试。尝试了在谷歌上找到的各种提示,但似乎没有任何效果。

复选框的来源是

<div class="ish-field buttons-conditions">
<div class="accept-conditions">
<input tabindex="30"
type="checkbox"
class="ish-input-regular-news"
id="RegisterUserFullEmail_Accepted-1"
value="true"
name="RegisterUserFullEmail_Accepted"

该复选框显示在页面上。 我希望能够做到:check("RegisterUserFullEmail_Accepted-1"),但这不起作用。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在您尝试驱动https://www.plus.nl/registreren的页面上,实际上隐藏了css display:none,然后使用css :: before伪元素插入已选中或未选中的图像框(可能使复选框在所有浏览器中看起来一致)。因此,您无需选中复选框,而是可以单击复选框的标签。在这种情况下,以下任何一种都应该这样做

find(:css, 'label', text: 'Ik accepteer de accountvoorwaarden').click
find(:css, 'label[for="RegisterUserFullEmail_Accepted-1"]').click

因为在这种情况下,标签内部有一个链接,它看起来位于链接的中间(点击它的位置)我们可以查看标签中的其他内容,并且其中有一个单独的span元素我们可以点击而不点击链接

find(:css, 'label', text: 'Ik accepteer de accountvoorwaarden').find(:css, 'span').click
find(:css, 'label[for="RegisterUserFullEmail_Accepted-1"] span').click
相关问题