如何使用Capybara匹配动态图片文件名?
How to use Capybara to match dynamic image file names?
我一直在尝试使用 Capybara 将实际图像文件名与预期文件名相匹配。
我有图像存储在 app/assets/images
,例如image01.png
.
这些图像的文件名存储在一个或多个表的image_file_name
字段中。
它们是在多个 html.erb
文件之一中使用 <%= @object.image_file_name %>
呈现的。但是,呈现的实际文件名在右侧有一系列字母数字字符,例如assets/image01-d4f7d162a9ecb8877e69bc96a8ca03bd7531c8faf7be7c65ba60c14e7c6fe530.png'
.
我已经尝试了以下期望并且它们有效:
expect(page).to have_css("img[src*='image01-d4f7d162a9ecb8877e69bc96a8ca03bd7531c8faf7be7c65ba60c14e7c6fe530.png']")
expect(page).to have_css("img[src*='image01']")
请问有没有一种方法可以验证图像文件名是否以 image01
开头并以 .png
结尾,而不管中间是什么?如果 hav_css
无法实现,have_selector
或 have_xpath
怎么样?
您可以将多个 CSS 属性选择器应用于同一字段,因此
expect(page).to have_css(“img[src^=‘image01’][src$=‘.png’]”)
应该做你想做的事
我一直在尝试使用 Capybara 将实际图像文件名与预期文件名相匹配。
我有图像存储在 app/assets/images
,例如image01.png
.
这些图像的文件名存储在一个或多个表的image_file_name
字段中。
它们是在多个 html.erb
文件之一中使用 <%= @object.image_file_name %>
呈现的。但是,呈现的实际文件名在右侧有一系列字母数字字符,例如assets/image01-d4f7d162a9ecb8877e69bc96a8ca03bd7531c8faf7be7c65ba60c14e7c6fe530.png'
.
我已经尝试了以下期望并且它们有效:
expect(page).to have_css("img[src*='image01-d4f7d162a9ecb8877e69bc96a8ca03bd7531c8faf7be7c65ba60c14e7c6fe530.png']")
expect(page).to have_css("img[src*='image01']")
请问有没有一种方法可以验证图像文件名是否以 image01
开头并以 .png
结尾,而不管中间是什么?如果 hav_css
无法实现,have_selector
或 have_xpath
怎么样?
您可以将多个 CSS 属性选择器应用于同一字段,因此
expect(page).to have_css(“img[src^=‘image01’][src$=‘.png’]”)
应该做你想做的事