c# - Selenium 通过 XPath 获取元素

标签 c# selenium selenium-webdriver drop-down-menu

我有以下代码,我想在其中选择下拉列表的值:

   <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>&nbsp;<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/

相关文章:

macos - 如何从 Docker 容器访问 Mac 的文件

python - CSS 选择器,按 CHILD 值选择

java - 显式等待不起作用,Thread.sleep 有效

java - 如何使用 Java 处理 Selenium WebDriver 中的弹出窗口

javascript - Windows 上的 Selenium WebDriver 错误 : logging. js 未找到

C#如何对背景渐变进行base64编码

c# - 在 C# 中更改 ComboBox 荧光笔的颜色

C# SSIS 脚本任务 - 格式化 Excel 列时添加千位分隔符

c# - 如何加快我的 EF 查询?

selenium-webdriver - getAttribute ("value") 返回空值,为什么?