0
我正在測試搜索頁面,其中用戶按值過濾記錄。長話短說 - 我需要檢查節點中沒有任何文本的元素的數量(我正在重置篩選器並檢查沒有任何文本的元素是否出現)。如何選擇沒有任何帶水豚的文字元素?
如何選擇所有沒有任何文字的元素?
我用這一點,但它無論如何返回的所有元素:
expect(page.all('table.index tbody td.status', text: '').count).to be == 0
我正在測試搜索頁面,其中用戶按值過濾記錄。長話短說 - 我需要檢查節點中沒有任何文本的元素的數量(我正在重置篩選器並檢查沒有任何文本的元素是否出現)。如何選擇沒有任何帶水豚的文字元素?
如何選擇所有沒有任何文字的元素?
我用這一點,但它無論如何返回的所有元素:
expect(page.all('table.index tbody td.status', text: '').count).to be == 0
的:文本選項需要一個字符串或正則表達式。當它是一個字符串時,它會進行子串匹配,因此''
將匹配所有元素。你想要的是
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等待/重試行爲的期望
你試過'page.all('table.index tbody td.status')。select {| field | field.val ==''}' –