使用xpath有条件地选择div

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

我只想在条件满足/有效时选择一个div。

渲染 html 时,以下

div
可以以两种方式呈现(按钮将启用/禁用)。

启用按钮状态:

<div class="buySellOrder_bso21ProductOption__9UpPt bodySmall cur-po buySellOrder_bso21InactiveProductOption__qrf7D contentPrimary">Intraday</div>

禁用按钮状态:

<div class="buySellOrder_bso21ProductOption__9UpPt bodySmall cur-po buySellOrder_bso21InactiveProductOption__qrf7D contentPrimary buySellOrder_bso21MisDisabled__86CjY contentPrimary">Intraday</div>

我只想在启用时选择此按钮。仅当 div 包含类

buySellOrder_bso21ProductOption__9UpPt
而不是
buySellOrder_bso21MisDisabled__86CjY

时才选择它

我尝试了以下方法,但不起作用

//*[(contains(@class,"buySellOrder_bso21ProductOption__9UpPt") and not contains(@class,"buySellOrder_bso21MisDisabled__86CjY")) and contains(text(),"Intraday")] 

还有其他方法吗?

javascript html dom xpath
1个回答
0
投票

我会尝试消除

@class
属性中的随机字符串并使用以下 XPath:

//*[@class[contains(.,"buySellOrder") and not(contains(.,"Disabled"))] 
and 
contains(text(),"Intraday")]

说明:

[@class[contains(.,"buySellOrder") and not(contains(.,"Disabled"))]
: 由于我们多次使用 @class,因此将谓词放在该 @class 属性上。并像这样使用
not
not()

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