3

我有一个这样的链接:

<a href="mailto:<%= @email %>?subject=答复投诉&正文=<%= @salutation %>,">答复</a>

如何使用 Cucumber/Capybara 对其进行测试?我的意思不仅仅是

我应该看到“答案”

4

4 回答 4

2

听起来您担心链接中的@emailand@salutationmailto:是否正确。

你可以做这样的事情

page.should have_xpath("//a[contains(@href,email)]"))
于 2012-05-24T17:20:37.853 回答
0

我结束了黄瓜步骤:

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
于 2012-05-25T11:05:25.490 回答
0

在 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
于 2016-09-30T10:53:56.190 回答
0

类似于接受的答案,但略有更新的示例。你可以这样说:

expect(page).to have_xpath("//a[contains(@href,'mailto:some_name@google.com')]")
于 2017-09-04T08:54:59.233 回答