我有以下代码,我想为下拉列表选择值:
<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#进行硒。我尝试过使用xpath,但它会抛出错误。
driver.FindElement(By.XPath("//*[@class='prod-value']/div/div/ul/li[0]/a")).Click();
以上代码无法找到确切的路径。
答案 0 :(得分:2)
试试这个:
<强> // * [含有(@class,&#39; PROD值&#39)] / DIV / DIV / UL /利[1] / A 强>
xpath存在两个问题。
prod-value
不是第一个div中唯一的类答案 1 :(得分:1)
@derlokkat provided with correct explanation(+1)
另一种解决问题的简单方法是使用链接文本(如果没有"10K Rose Gold"
个链接):
driver.FindElement(By.LinkText("10K Rose Gold")).Click();
答案 2 :(得分:1)
您需要先单击下拉列表以展开其选项,然后才能选择任何选项。
// expand dropdown options
driver
.FindElement(By.Css("div.prod-value button.dropdown-toggle.selectpicker"))
.click();
// choose option
driver.FindElement(By.LinkText("10K Rose Gold")).Click();
答案 3 :(得分:0)
首先,您需要将下拉列表展开为Answered by Yong
然后,您需要使用xpath作为Answered by derloopkat
单击元素以下是获得最终输出的最终代码:
driver.FindElement(By.CssSelector("div.prod-value button.dropdown-toggle.selectpicker")).Click();
driver.FindElement(By.XPath("//*[contains(@class,'prod-value')]/div/div/ul/li[1]/a")).Click();