div的Xpath,它指定一个类和一个样式属性

nix*_*x86 4 xpath

我想编写一个xpath来标识具有foo类和display:块的div。我写

div[@class="foo" and @style="*display: block*"]
Run Code Online (Sandbox Code Playgroud)

但这不起作用。使用正确吗?在正则表达式中使用星号是否正确?

Vit*_*yuk 6

您的xpath正在搜索@style="*display: block*",这意味着完全等于引号内的值。使用contains()替代,据透露:也有starts-with()方法

//div[@class='foo'][contains(@style,'display: block')]
Run Code Online (Sandbox Code Playgroud)

使用这种定位器存在一个问题,因为有时元素是可见的,尽管没有样式display:block。因此,您可以使用类似的定位器,但可以搜索不包含“ none”的内容(如display:none),而不是包含块,可以通过将其添加到main locator来尝试[not(contains(@style, 'none'))]。只要记住这种选择)