【发布时间】:2021-01-07 23:19:07
【问题描述】:
ERROR ON "var links = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/div[1]/div/nav/ol/ li[3]"));"
我在单击 li 标记(var 链接)中的 selenium 链接时遇到问题,尽管它可以通过手动单击。我尝试了很多方法,但还没有找到一种有效的方法;搜索stackoverflows已经存在的问题,也没有帮助。
无论我使用什么选择器类型,这都是我得到的错误 OpenQA.Selenium.NoSuchElementException:'没有这样的元素:无法找到元素
我的代码
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Interactions;
namespace BookFetcher
{
public static class Program
{
public static void Main()
{
IWebDriver driver = new ChromeDriver(@"C:\");
driver.Manage().Window.Maximize();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
driver.Navigate().GoToUrl("http://xn--epik-0qa.ee/minu-konto/");
driver.FindElement(By.XPath("//*[@id='username']")).SendKeys("");
driver.FindElement(By.XPath("//*[@id='password']")).SendKeys("");
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[1]/div/div/div/div/div[1]/form/p[3]/button")).Click();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
driver.FindElement(By.XPath("/html/body/header/div/div/nav[2]/ul/li[2]/a")).Click();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
var element = driver.FindElement(By.XPath("/html/body/div[3]/div[1]/section[1]/div[3]/div[94]/p[2]/a"));
Actions actions = new Actions(driver);
actions.MoveToElement(element);
actions.Perform();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
element.Click();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
var links = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/div[1]/div/nav/ol/li[3]"));;
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
links.Click();
Console.ReadLine();
}
}
}
HTML 源代码
<div class="content-area">
<div class="epub">
<div class="column epub-nav">
<div class="epub-nav-inner">
<div class="epub-meta">
<p>uid: 978-9949-559-55-8</p><p>creator: </p><p>publisher: Maurus</p><p>subject: </p> </div>
<nav epub:type="toc" id="toc">
<ol>
<li>
<a href="?currentPage=3">Tööraamatu kasutajale</a>
</li>
<li>
<a href="?currentPage=4">1. Arvuhulgad ja avaldised</a>
</li>
<li>
<a href="?currentPage=4">1.1. Arvuhulgad</a>
</li>
<li>
<a href="?currentPage=7">1.2. Tehted astmete ja juurtega</a>
</li>
我已经请求过一次帮助,但是提供的解决方案似乎无法解决问题,所以我想我会再试一次,希望有人帮助我。
【问题讨论】:
-
哪一行出现错误?
-
很抱歉最初没有在帖子中包含该内容,我对stackoverflow和编码本身还是很陌生。这是第 33 行
-
第 33 行为你对应这一行
links.Click();? -
var links = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/div[1]/div/nav/ ol/li[3]"));;
-
查看更新后的答案,如果您要单击的文本打印到控制台,请告诉我。
标签: c# html selenium selenium-webdriver web