2016-03-25 47 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等。 –