Then /^I should see the attribute "([^"]*)" with "([^"]*)"$/ do |title, value|
  elems = all ".attributes_table th:contains('#{title}') ~ td:contains('#{value}')"
  expect(elems.first).to_not eq(nil), "attribute missing"
end

Then /^I should see the attribute "([^"]*)" with a nicely formatted datetime$/ do |title|
  text = all(".attributes_table th:contains('#{title}') ~ td").first.text
  expect(text).to match /\w+ \d{1,2}, \d{4} \d{2}:\d{2}/
end

Then /^the attribute "([^"]*)" should be empty$/ do |title|
  elems = all ".attributes_table th:contains('#{title}') ~ td > span.empty"
  expect(elems.first).to_not eq(nil), 'attribute not empty'
end

Then /^I should not see the attribute "([^"]*)"$/ do |title|
  expect(page).to_not have_css '.attributes_table th', text: title
end
