Ruby on rails 如何在Cucumber/Capybara步骤定义(Rails 3)中执行xpath正则表达式搜索?

Ruby on rails 如何在Cucumber/Capybara步骤定义(Rails 3)中执行xpath正则表达式搜索?,ruby-on-rails,regex,cucumber,paperclip,Ruby On Rails,Regex,Cucumber,Paperclip,我有一个场景可以验证我刚才上传的图像是否存在于下一页 下面这个很好用,除了我有一个基于列表id的可变文件夹结构。我如何在这里使用regex将image仅匹配文件名而不是整个url Then /^I should see the image "(.+)"$/ do |image| page.should have_xpath("//img[@src=\"/public/images/#{image}\"]") end 请尝试page。应该有\u xpath(“//img[contains

我有一个场景可以验证我刚才上传的图像是否存在于下一页

下面这个很好用,除了我有一个基于列表id的可变文件夹结构。我如何在这里使用regex将image仅匹配文件名而不是整个url

Then /^I should see the image "(.+)"$/ do |image|
    page.should have_xpath("//img[@src=\"/public/images/#{image}\"]")
end

请尝试
page。应该有\u xpath(“//img[contains(@src,\“{image}\”)”)
,它将匹配任何
img
,其
src
包含您的文件名。

如果您有此选项,则在这种情况下使用css选择器更简洁:

page.should have_selector( :css, "a[href$='#{image}']")

请注意“
href$
”末尾的“
$
”,以表示与字符串结尾的匹配。

我建议使用
函数结尾。@Jamis:我的意思是使用
XPath函数结尾,而不是
包含
。我对ruby一无所知,但复制粘贴@dmarkow的代码将给出
page.should有\u xpath(//img[以(@src,\“{image}\”)结尾)