如何使用Capybara匹配动态图像文件名?

问题描述 投票:2回答:1

我一直在尝试使用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_selectorhave_xpath呢?

ruby-on-rails ruby rspec capybara
1个回答
1
投票

您可以将多个CSS属性选择器应用于同一字段,因此

expect(page).to have_css(“img[src^=‘image01’][src$=‘.png’]”)

应该做你想做的事情

© www.soinside.com 2019 - 2024. All rights reserved.