2016-02-25 155 views
0

有誰知道我可以用什麼匹配器檢查水豚的頁面,看看它是否包含一個HTML表?然後可能是匹配器來檢查表中是否包含特定內容?RSpec /水豚 - 測試表的頁面

expect(page).to have_content(table)

像這樣的東西? :s

回答

1
describe 'table' do 
    it 'exists' do 
    expect(page).to have_css 'table' 
    end 

    it 'has something inside' do 
    within 'table' do 
     expect(page).to have_text 'foo bar' 
    end 
    end 
end 
0

@MilesStanfield答案將工作正常,如果只有一個表在頁面上。如果有倍數要檢查包含具體內容的表存在,你可以做

expect(page).to have_css('table', text: 'content to check') 
-1

驗證任何表與網頁中的數據可以與水豚可以輕鬆完成,如下圖所示:

特性文件:

Scenario: Verify content of html table 
When Admin is on "www.abc.com" page 
Then Admin verifies that following contents of html table: 
| TableHeading1 | TableHeading2 | TableHeading3 | TableHeading4 | 
| Value1  | Value2  | Value3  | Value4  | 

步驟定義爲表驗證:

And(/^(\S*) Admin verifies that following contents of html table:$/) do | table| 
    // to verify table header 
    table.headers.each_with_index do |value, index| 
    tableHeadingCss = "#{someTableId} > thead > tr > th:eq(#{index})" 
    selectorText = page.evaluate_script("#{tableHeadingCss}').text().trim()") 
    selectorText.should eq value 
    end 

    // to verify table cell contents 
    table.raw[1...table.raw.length].each_with_index do |row, row_index| 
    row.each_with_index do |value, index| 
     tableCellContentCss = "#{someTableId} > tbody > tr:eq(#{row_index}) > td:eq(#{index})" 
     selectorText = page.evaluate_script("#{tableCellContentCss}').text().trim()") 
     selectorText.should eq value 
    end 
    end 
end 

如果你只是想確認表存在,那麼你可以使用

expect(page).to have_css 'table' 
+0

這是黃瓜而不是RSpec – PhilT

0

我希望這個解決方案可以幫助你。 (I端口在使用黃瓜施普利瓦爾德庫table_helpers.rb)

這裏是我的情況:

scenario "table's data after click to sort with '會場名稱'", js: true do 
    screening_rooms = (1..5).each do |n| 
    create :screening_room, m_branch_id: "#{n}", name: "name-#{n}" 
    end 
    visit screening_rooms_path 
    within("table#common_list thead") do 
    click_link "會場名稱" 
    end 
    expected_table = <<-EOF 
    |拠點|會場名稱|會場住所|登録日時|更新日時| | 
    | * |name-5 |*  |*  |*  |*| 
    | * |name-4 |*  |*  |*  |*| 
    | * |name-3 |*  |*  |*  |*| 
    | * |name-2 |*  |*  |*  |*| 
    | * |name-1 |*  |*  |*  |*|  
    EOF 

    document = Nokogiri::HTML(page.body) 
    tables = document.xpath('//table').collect {|table| table.xpath('.//tr').collect {|row| row.xpath('.//th|td')}} 
    parsed_table = parse_table(expected_table) 
    tables.should contain_table(parsed_table) 
end 

和我的支持/助理/ table_helpers.rb

table_helpers.rb