验证数据开关设置为No - Capybara

时间:2013-09-06 14:49:25

标签: capybara

我有以下HTML。

<div class="toggle_checkbox switchLogin aligned" data-section="secure_content" data-switch="no">

当我浏览页面时,我希望测试数据开关设置为no。我尝试过这样的事情:

result = page.find('.toggle_checkbox switchLogin aligned').data-switch
assert result == 'no'

但这不起作用。任何人都知道如何使用水豚验证这一点?

谢谢!

1 个答案:

答案 0 :(得分:1)

你想这样做:

result = page.find('.toggle_checkbox.switchLogin.aligned')['data-switch']
assert result == 'no'

有几点需要注意。

当使用多个类定位元素时(即类属性有多个用空格分隔的单词),css选择器需要在每个类的前面放置一个句点。

css选择器:

.toggle_checkbox switchLogin aligned

实际上意味着找到一个带有“toggle_checkbox”类的元素,在其中找到一个“switchLogin”类型的元素,然后在那个类型为“aligned”的元素中。

你真正想要的是:

.toggle_checkbox.switchLogin.aligned

这意味着找到一个类别为“toggle_checkbox”,“switchLogin”和“aligned”的元素。

其次,要获取元素的属性值,可以使用[]方法完成。 []的内容是与属性名称匹配的字符串。所以格式基本上是:

element['attribute_name']

在你的情况下,它是:

element['data-switch']

(其中element是找到的元素)