在capybara对象上断言属性

时间:2012-08-21 19:12:27

标签: attributes find selector capybara assert

我目前正在与capybara合作进行集成测试,并作为测试框架的一部分。我遇到了一个似乎无法找到解决方案的问题。所以场景是这样的,我最初做一个tbody元素的查找。我把对象拿回来了,这一切都很好。我面临的问题是我的测试中有一点我需要断言我正在使用的tbody对象的css类已经改变了。到目前为止我尝试的每种方法都失败了。代码看起来像这样:

@element = find('tbody')

--tbody css selecor changes to '.is-edit-post'

@element.find('.is-edit-post')

我试图断言capybara对象有那个css选择器。我也尝试了以下内容:

@element.has_css('.is-edit-post')

@element.assert_selector('.is-edit-post')

现在,我还没有完全理解#find方法是如何工作的,以及它究竟返回了什么。在这一点上,我推测,因为tbody对象在找到并由#find方法返回时没有那个css选择器,这就是为什么它返回false或者抛出一个异常,说它没有找到。< / p>

如果该对象的属性发生变化,任何人对如何获取该capybara对象的属性有任何想法?

1 个答案:

答案 0 :(得分:0)

自从我发布这个问题已经有很长一段时间了,但我认为我在这种情况下寻找的答案是:

@element[:class].include? 'is-edit-post'

或者如果元素没有更新,我需要再次抓取它然后检查类:

find('tbody')[:class].include? 'is-edit-post'

无论如何,我很久以前就解决了这个问题。