I have found on numerous occasions that I need to look at HTML attributes when diffing tables etc. in Cucumber. My current need for this arrises as I have a gallery of thumbnails that all have alt tags who’s values I need to compare as there is not a text equivalent.
A feature statement like this:
Then I should see the following thumbnails | Mona Lisa | | Sunflowers |
Could be achieved with the following step:
Then /^I should see the following thumbnails$/ do |table|
nodes = Nokogiri::HTML(response.body).css('ul#gallery li img')
table.diff!(nodes.map { |img| [img.attributes['alt'].to_s] })
end