VBA Selenium如何使用通配符匹配ID定位元素?
在VBA Selenium中用通配符匹配ID定位元素
可以通过XPath的字符串匹配函数或CSS选择器实现类似通配符的ID定位,直接在XPath的@id属性里用*是无效的,以下是具体实现方式:
适配你的场景的定位方案
你的ID是前缀变化、固定后缀admin_status,推荐以下两种精准定位方式:
1. XPath 匹配结尾
如果你的Selenium驱动支持XPath 2.0及以上,用ends-with函数最直观:
stat = GC.FindElementByXPath("//*[ends-with(@id, 'admin_status')]").Value
若驱动仅支持XPath 1.0,用字符串截取替代:
stat = GC.FindElementByXPath("//*[substring(@id, string-length(@id) - string-length('admin_status') +1) = 'admin_status']").Value
2. CSS选择器匹配结尾
CSS选择器的语法更简洁,性能也更优:
stat = GC.FindElementByCss("[id$='admin_status']").Value
扩展场景的定位方式
如果需要匹配ID中包含admin_status的元素,可用:
- XPath方式:
stat = GC.FindElementByXPath("//*[contains(@id, 'admin_status')]").Value
- CSS选择器方式:
stat = GC.FindElementByCss("[id*='admin_status']").Value
注意事项
- 如果页面存在多个符合条件的元素,
FindElementByXPath/FindElementByCss仅返回第一个匹配项,需确保定位的唯一性;若要处理所有匹配元素,改用FindElementsByXPath/FindElementsByCss遍历结果。
内容的提问来源于stack exchange,提问作者protter
相关产品推荐
相关产品推荐

