繁体   English   中英

如何 Xpath 查询包含相同属性值的所有选项标签

[英]How to Xpath query all option tags containing the same attribute value

我正在尝试使用标记为 Book1 的数据存储值来查询所有选项标签中的文本。 下面是主题下拉列表。

<div class="form-group">
        <label>Cards</label>
        <select class="form-control giftcard-selector" name="giftcard">
                <option data-store="Book1" data-number="110" data-pin="333" data-balance="93.92" value="81372" style="display: none;">Book1: 1110 ($93.92)</option>
                <option data-store="Book2" data-number="111" data-pin="0619" data-balance="7.56" value="81371" style="display: none;">Book2: 112 ($7.56)</option>
                <option data-store="Book1" data-number="113" data-pin="8229" data-balance="10.24" value="81369" style="display: none;">Book1: 113 ($10.24)</option>
                <option data-store="Book2" data-number="114" data-pin="0984" data-balance="2.17" value="81373" style="display: none;">Book2: 115 ($2.17)</option>
        </select>
</div>

我已尝试使用以下 xpath 来查询标记为“Book1”的选项标签数据存储值中的所有文本,但它返回“Null”。任何帮助将不胜感激。

//select[@class="form-control giftcard-selector"]/option@data-store="Book1"

我认为你错误地构建了你的 xpath,试试这个:

对于元素:

//select[@class="form-control giftcard-selector"]/option[@data-store="Book1"]

对于文本:

//select[@class="form-control giftcard-selector"]/option[@data-store="Book1"]/text()

您可以使用:

cssSelector: ".form-control.giftcard-selector option[data-number='1']"

如果仔细观察<select>元素,所有后代<option>元素都将style属性设置为display: none; . 因此, Selenium将无法以通用方式定位它们。


解决方案

据推测, <option>标签中的文本也通过一个<ul>和几个<li>标签表示,您需要通过这些标签与 option 元素进行交互。


参考

您可以在以下位置找到一些相关的详细讨论:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM