2016-09-10 160 views
0

我正在測試搜索頁面,其中用戶按值過濾記錄。長話短說 - 我需要檢查節點中沒有任何文本的元素的數量(我正在重置篩選器並檢查沒有任何文本的元素是否出現)。如何選擇沒有任何帶水豚的文字元素?

如何選擇所有沒有任何文字的元素?

我用這一點,但它無論如何返回的所有元素:

expect(page.all('table.index tbody td.status', text: '').count).to be == 0 
+1

你試過'page.all('table.index tbody td.status')。select {| field | field.val ==''}' –

回答

1

的:文本選項需要一個字符串或正則表達式。當它是一個字符串時,它會進行子串匹配,因此''將匹配所有元素。你想要的是

expect(page).to have_no_css('table.index tbody td.status', text: /^$/) 

expect(page).to have_css('table.index tbody td.status', text: /^$/, count: 0) 
的時間

99.9%,你最好使用提供的匹配(have_css,have_selector等),而不是結果調用數all,因爲你會得到Capybaras等待/重試行爲的期望