0

您能否幫助建議某些腳本驗證表單元格是否爲空值?我需要驗證表中沒有空單元格。空單元格驗證表

tableFG = page.table(:id => 'FinancialsGrid') 
tableFG.rows.each do |row| 
    row.cells.each do |cell| 
    expect(cell.tableFG_element.text).should_not be_nil 
    end 
end 

可能還有另一種方法來檢查空值。

回答

2

我不喜歡手動編寫一個循環來迭代並驗證每個單元格的事情,因爲您只能看到第一個失敗的結果。如果說有兩個空白的單元格,則測試失敗將只顯示一個單元格。

因此,我嘗試使用檢查每個元素的內置期望匹配器(例如all)。例如,以下內容將獲取每個單元格的文本長度,並確保它至少有一個字符長。請注意,Watir會剝去前/後空格,所以長度爲1應該是實際字符。

financials_grid = browser.table(:id => 'FinancialsGrid') 
expect(financials_grid.tds.map(&:text).map(&:length)).to all(be > 0) 

失敗的預期將類似於以下,其中包括失敗的每個細胞:

expected [1, 0, 0, 1] to all be > 0 

object at index 1 failed to match: 
expected: > 0 
got: 0 

object at index 2 failed to match: 
expected: > 0 
got: 0 

使用頁面對象寶石將是(略有不同的方法)類似。假設表格在頁面中被定義爲financials_grid

page = MyPage.new(browser) 
expect(
    page.financials_grid_element.cell_elements.map(&:text).map(&:length) 
).to all(be > 0) 
+0

很好。謝謝,賈斯汀。這是我期望的更好。即使我有一個空單元,它已經很糟糕了。因此,即使找到一個空單元也不是什麼壞事,因爲不應該有一個空單元。 –