2016-03-25 48 views
0

我想检查是否div具有与水豚类特殊儿童,使用下面的代码段的检查孩子水豚:具有一个div类

(byebug) find("#admin-row-1 .glyphicon-ban-circle") 
#<Capybara::Node::Element tag="a" path="/html/body/main/div[2]/div/div/div/table/tbody/tr[3]/td[3]/a[2]"> 

但尽管如此,发现了以下预期错误

Failure/Error: expect(find("#admin-row-1 .glyphicon-ban-circle")).to_not be_empty 
     expected #<Capybara::Node::Element tag="a" path="/html/body/main/div[2]/div/div/div/table/tbody/tr[3]/td[3]/a[2]"> to respond to `empty?` 

回答

1

find回报S上的元素或抛出一个异常,它不返回任何东西塔响应empty?,你可以使用all,而不是返回状物体的数组,但更好的方法是使用由水豚

expect(page).to have_css('#admin-row-1 .glyphicon-ban-circle') 
+0

提供的have_css匹配它与'expect(page).to have_selector('#admin-row-1 .glyphicon-ban-circle')'相同。 'have_css'和'have_selector'有什么区别? – vipin8169

+0

Have_selectors第一个参数是capybara选择器的类型(has_selector中的选择器指的是capybara选择器,不一定是CSS),如果未指定,则默认为Capybara.default_selector,其默认值为:css。 have_css(...)调用has_selector(:css,...),所以它是一样的东西,但清楚你使用的是CSS而不是:xpath,:field,:select等。 –