15

使用 capybara,有没有办法获得一个元素的所有 css 类?查看文档,我没有看到任何简单的方法。

此外,给定一个元素 elem 和一个 css 类 someclass,应该elem.has_css?('.someclass')等价于 jquery$(elem).hasClass('someclass')吗?

这个特殊的测试使用 Selenium,因为它涉及到 javascript。

4

1 回答 1

26

Element#[]对我来说看起来很容易:

find('div')[:class]

此外,给定一个元素 elem 和一个 css 类 someclass,elem.has_css?('.someclass') 是否应该等同于 jquery $(elem).hasClass('someclass')?

元素#has_css?在调用该方法的元素中检查具有指定 CSS 选择器的元素。Jquery 的hasClass检查元素是否具有指定的类。

更新: Capybara 匹配器在当前元素中查找元素/文本。Element#has_css?检查元素是否包含具有指定 css 选择器的元素。如果要检查元素是否存在,请使用page.has_css?. 也许expect(page).to have_css('div')形式的匹配器对你来说会更好。

于 2013-01-01T21:23:48.097 回答