我目前正在与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对象的属性有任何想法?
答案 0 :(得分:0)
自从我发布这个问题已经有很长一段时间了,但我认为我在这种情况下寻找的答案是:
@element[:class].include? 'is-edit-post'
或者如果元素没有更新,我需要再次抓取它然后检查类:
find('tbody')[:class].include? 'is-edit-post'
无论如何,我很久以前就解决了这个问题。