我有以下代码,我想在其中选择下拉列表的值:
<div class="prod-value col-xs-6 col-sm-8">
<select class="selectpicker show-menu-arrow" data-style="btn-default btn-sm" data-width="98%" data-size="6" onchange="location=options[selectedIndex].value;" style="display: none;"><option value="/design-your-engagement-ring/choose-a-setting/10k-rose-gold-round-halo-engagement-ring/50277-E-10KR">10K Rose Gold</option>
<option value="aa">10K White Gold</option>
<option value="bb">10K Yellow Gold</option>
</select>
<div class="btn-group bootstrap-select show-menu-arrow" style="width: 98%;">
<button type="button" class="btn dropdown-toggle selectpicker btn-default btn-sm" data-toggle="dropdown" title="14K White Gold">
<span class="filter-option pull-left">14K White Gold</span> <span class="caret"></span></button>
<div class="dropdown-menu open">
<ul class="dropdown-menu inner selectpicker" role="menu">
<li data-original-index="0">
<a tabindex="0" class="" data-normalized-text="10K Rose Gold"><span class="text">10K Rose Gold</span><span class="glyphicon glyphicon-ok icon-ok check-mark"></span></a>
</li>
<li data-original-index="1">
<a tabindex="0" class="" data-normalized-text="10K White Gold"><span class="text">10K White Gold</span><span class="glyphicon glyphicon-ok icon-ok check-mark"></span></a>
</li>
</ul>
</div>
</div>
<input type="hidden" id="metal_type" name="metal_type" value="14KW">
</div>
如何使用 C# 处理 Selenium 。我曾尝试使用 xpath,但它会引发错误。
driver.FindElement(By.XPath("//*[@class='prod-value']/div/div/ul/li[0]/a")).Click();
以上代码无法找到确切的路径。
最佳答案
试试这个:
//*[contains(@class,'prod-value')]/div/div/ul/li[1]/a
xpath 有两个问题。
prod-value
不是第一个 div 中出现的唯一类- 元素索引从 1 开始,所以没有 li[0]
关于c# - Selenium 通过 XPath 获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49887293/