[英]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.