【问题标题】:How to find an image tag by filename using xpath如何使用 xpath 按文件名查找图像标签
【发布时间】:2011-08-09 23:39:25
【问题描述】:

我正在使用 capybara 运行一些黄瓜功能,我需要检查是否正在显示某个图像。

我尝试了这个 xpath 匹配,但显然函数 matches 不可用:

//img[matches(@src, "my_image.png")]

【问题讨论】:

  • 如果它显示在您正在获取的页面上,或者您是否正确获取并需要检查它?
  • 我不会将其称为完全重复,但答案非常熟悉。另见:stackoverflow.com/questions/402211/…

标签: xpath cucumber capybara


【解决方案1】:

您不需要任何matches 函数。使用:

//img[@src='my_image.png']

或者,如果路径可以在您要匹配的部分之前包含文本:

//img['my_image.png'=substring(@src, string-length(@src) - 11)]

第二个表达式模仿ends-with 函数。

如果您不喜欢对子字符串长度进行硬编码,请使用:

//img['my_image.png'=substring(@src, 
          string-length(@src) - string-length('my_image.png') + 1)]

为了完整性:在某些情况下,以下是可以接受的:

//img[contains(@src, 'my_image.png')]

【讨论】:

  • 谢谢,我使用了 contains,因为它不是完全匹配的。
  • 谢谢。一直在寻找 capybara 支持的 xpath 函数列表。我正在努力弄清楚为什么我的匹配器无法正常工作。你有支持的功能列表吗?
猜你喜欢
  • 1970-01-01
  • 2011-02-24
  • 2021-01-26
  • 2020-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多