当前位置: 首页 > 知识库问答 >
问题:

未解决的硒点击一个href

海宁
2023-03-14

"var链接=driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/div[1]/div/nav/ol/li[3]"));"

我很难点击li标签中的selenium链接(var links ),尽管它可以用手点击。我已经尝试了许多方法,但还没有找到一个工作;彻底检查stackoverflows已经存在的问题,也无济于事。

这是我得到的错误,无论我使用什么选择器类型 OpenQA.硒.无特殊: '没有这样的元素: 无法找到元素

我的代码

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>

我已经请求过一次帮助,但是提供的解决方案似乎并不能解决问题,所以我想我应该再试一次,希望有人能帮助我。

共有1个答案

冯澄邈
2023-03-14

也许有一个iframe。

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 iFrame = driver.FindElement(By.Xpath("//iframe"));
            driver.SwitchTo().Frame(iFrame);
            var links = driver.FindElement(By.XPath("//a[@href='?currentPage=4']"));
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
            links.Click();
            Console.ReadLine();
        }
    }
}
 类似资料:
  • 我想用硒点击“?例如,在网站上你点击的按钮会重定向到href,但是当我使用selenium时,什么也没发生。我已经尝试了这么多迭代,也查找了类似的指南,但无济于事。

  • 我正在尝试网络抓取,我需要模拟对buttoN的点击,我已经尝试过了: 并返回此错误: selenium . common . exceptions . nosuchelementexception:消息:没有这样的元素:找不到元素:{"method":"xpath "," selector ":"//*[@ id = " CTL 00 _ CP h1 _ BtnTipoGobierno "]" }

  • 我想搜索一个表,在第1列中查找一个关键字字符串“admin ”;如果找到,单击同一行中的“登录”按钮。“登录”按钮总是在第9列。 我正在使用的python代码是: 我的代码成功地找到了具有“admin”字符串的行,但当我尝试执行 硒执行了“悬停”动作,例如,它没有点击按钮,但我看到这个按钮 https://xxxxxxxxxxxxx.com/otr/index?do=login_customer

  • 用我在selenium的初学者知识,我试图找到点击元素,打开链接。这些项目的链接没有href。我如何执行点击正确的元素打开链接。 我正在使用python、selenium、chrome web驱动程序、BeautifulSoup。所有库都已更新。 下面是示例html片段,其中有一个我需要使用selenium点击的标题。请让我知道,如果你需要更多的html源。此代码来自仅限“登录”的网站。

  • 我就是不能点击按钮进入下一页。目前为止我尝试了以下方法 编辑 关键是重新定位元素,重新加载。由于我在表单中单击,底层代码发生了变化。司机。通过xpath(//button[@type='submit'][@name='button'])查找元素。因此,click()无法找到元素。重新加载驱动程序后。get(“%s/%s:%s”%(str(sys.argv[4])、str(sys.argv[2])、

  • 我目前正在处理一个自动填写表格的项目。当表单填写时,下一个按钮会出现,这就是为什么它给我一个错误。 我试过: HTML: 错误: selenium.common.exceptions.ElementClickInterceptedException:消息:元素点击被拦截:元素在点(203,530)不可点击。其他元素将收到点击:...(会话信息:chrome=76.0.3809.132)