我有一个这样的链接:
<a href="mailto:<%= @email %>?subject=答复投诉&正文=<%= @salutation %>,">答复</a>
如何使用 Cucumber/Capybara 对其进行测试?我的意思不仅仅是
我应该看到“答案”
我有一个这样的链接:
<a href="mailto:<%= @email %>?subject=答复投诉&正文=<%= @salutation %>,">答复</a>
如何使用 Cucumber/Capybara 对其进行测试?我的意思不仅仅是
我应该看到“答案”
听起来您担心链接中的@email
and@salutation
值mailto:
是否正确。
你可以做这样的事情
page.should have_xpath("//a[contains(@href,email)]"))
我结束了黄瓜步骤:
Then /^I should have a mailto link with:$/ do |table|
mailto_link = '//a[@href="mailto:' + table.rows_hash['recipient'] + '?subject=' + table.rows_hash['subject'] + '&body=' + table.rows_hash['body'] + ' "]'
page.should have_xpath(mailto_link)
end
在 Piotr Brudny 中添加了 URL 编码并包含参数的顺序无关紧要(我从那里删除了正文,但如果需要,您可能会弄清楚。
Then(/^I should have a mailto link with:$/) do |table|
mailto_link = ("//a[contains(@href, \"mailto:#{table.rows_hash['recipient']}\")"\
" and contains(@href, \""+ {
subject: table.rows_hash['subject']
}.to_query + '")]').gsub('+', '%20')
page.should(have_xpath(mailto_link))
end
类似于接受的答案,但略有更新的示例。你可以这样说:
expect(page).to have_xpath("//a[contains(@href,'mailto:some_name@google.com')]")