我正在尝试在 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/