我想写一个xpath来识别一个包含类foo和display:block的div。我写了
div[@class="foo" and @style="*display: block*"]
但它不起作用。使用是否正确?使用正则表达式中的星号是否正确?
答案 0 :(得分:5)
你的xpath正在搜索@style="*display: block*"
,它意味着完全等于引号内的值。请改用contains()
,
Fyi:还有starts-with()
方法
//div[@class='foo'][contains(@style,'display: block')]
使用这样的定位器存在一个问题,因为有时元素是可见的,尽管没有样式display:block
。所以你可以使用类似的定位器,但不是包含块,不包含“无”的搜索(如display:none),可以通过将其添加到主定位器[not(contains(@style, 'none'))]
来尝试。只记得这样的选项)