我一直在尝试使用Capybara将实际的图像文件名与预期的文件名进行匹配。
我有存储在app/assets/images
中的图像,例如image01.png
。
这些图像的文件名存储在一个或多个表的image_file_name
字段中。
它们是在多个<%= @object.image_file_name %>
文件之一中使用html.erb
渲染的。但是,实际呈现的文件名在右侧具有一系列字母数字字符,例如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’]”)
应该做你想做的事情