【发布时间】:2018-10-08 17:13:13
【问题描述】:
使用 capybara,有没有办法获取一个元素的所有 css 类?查看文档,我看不到任何简单的方法。
另外,给定一个元素 elem 和一个 css 类 someclass,elem.has_css?('.someclass') 是否应该等同于 jquery $(elem).hasClass('someclass')?
这个特殊的测试使用 Selenium,因为它涉及到 javascript。
【问题讨论】:
使用 capybara,有没有办法获取一个元素的所有 css 类?查看文档,我看不到任何简单的方法。
另外,给定一个元素 elem 和一个 css 类 someclass,elem.has_css?('.someclass') 是否应该等同于 jquery $(elem).hasClass('someclass')?
这个特殊的测试使用 Selenium,因为它涉及到 javascript。
【问题讨论】:
Element#[] 对我来说看起来很简单:
find('div')[:class]
另外,给定一个元素 elem 和一个 css 类 someclass,elem.has_css?('.someclass') 是否应该等同于 jquery $(elem).hasClass('someclass')?
Element#has_css? 在调用该方法的元素中检查具有指定 CSS 选择器的元素。 Jquery 的hasClass 检查元素是否具有指定的类。
更新: Capybara matchers 在当前元素中查找元素/文本。 Element#has_css? 检查元素是否包含具有指定 css 选择器的元素。如果要检查元素是否存在,请使用page.has_css?。也许expect(page).to have_css('div') 形式的匹配器更适合您。
【讨论】: