c# - 使用 XPATH 或 CSS 选择器在 Selenium 中查找元素

标签 c# css xpath selenium-webdriver

我正在尝试在 C# 中使用 Selenium Webdriver 查找“导入”元素。已尝试以下代码但没有找到它。

driver.FindElement(By.XPath("//*[@class='menu_bg']/ul/li[3]")).Click();
driver.FindElement(By.XPath("//*[@id='import']/a")).Click();
driver.FindElement(By.CssSelector("#import>a")).Click();
driver.FindElement(By.XPath("//*[@class='menu_bg']/ul/li[3]/a")).Click();
driver.FindElement(By.CssSelector("ul[@class='menu_bg']>li[value='3']")).Click();

请帮帮我。设计页面如下所示:

<body>
    <div class="header_bg"></div>
    <div class="menu_bg">
        <ul class="menu">
            <li id="retrieve"></li>
            <li id="scan" class="test"></li>
            <li id="import">
                <a target="main" href="import/import.aspx" onclick="clickme(this,'import')">Import</a>
            </li>
            <li id="admin"></li>
            <li id="help"></li>
            <li style="float: right;"></li>
        </ul>
    </div> 
</body>

我一直收到如下错误:

unable to find the element

最佳答案

XPath 索引器是从 1 开始的,而大多数其他语言是从 0 开始的。

这意味着您实际上定位的是 2nd li 元素,该元素没有 anchor 元素。

所以:

//*[@class='menu_bg']/ul/li[3]/a

但是,这个 XPath 查询不是很好,而且对位置太严格 - 因此,尽管上面这个新修复的 XPath 应该 可以工作,但我建议您考虑其他方法。

关于c# - 使用 XPATH 或 CSS 选择器在 Selenium 中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24120263/

相关文章:

c# - MS BOT 更改根对话框

c# - 错误 C2664 - 需要帮助和说明

c# - 监听 MySQL 中的数据库变化

css - JSF2/Primefaces 布局性能

javascript - div 中的 child 点。令人头疼的 jQuery - 第 2 部分

java - Selenium 中的转义撇号

xml - 关于根节点的简单 XPath 问题

xml - XPath:根据有“双胞胎”的 sibling 选择子代

c# - throttle 异步任务?

javascript - css 媒体查询向 HTML 添加类