【问题标题】:NoSuchElementException error when trying to click a hyperlink with selenium and Python [duplicate]尝试单击带有 selenium 和 Python 的超链接时出现 NoSuchElementException 错误 [重复]
【发布时间】:2022-01-07 22:58:25
【问题描述】:

我正在尝试在网页上查找数据列表,但该列表已隐藏,因此我需要浏览该页面。无论我尝试什么,我都无法找到一个超链接标签然后点击它。

有谁知道如何导航到以下超链接并点击:

    <li>
    <a href="#" class="accordion-toggle">
    == $0
        <span class="fa fa-briefcase">::before</span>
        <span class="sidebar-title">Batches</span>
        <span class="caret">::after</span>
        ::after
    </a>
    <ul class="nav sub-nav">::before
        <li class="active">
            <a href="#" aria-expanded="true">
                <span class="fa fa-table"></span>
                "Lijst"
                ::after
            </a>
        </li>
        ::after
    </ul>
</li>

由于您需要登录,我无法访问该页面,但有四个超链接具有相同的 href="#" 和 class="accordion-toggle"。因此,我有兴趣了解如何选择并单击它。

【问题讨论】:

    标签: python python-3.x selenium hyperlink


    【解决方案1】:

    如果操作正确,xpath 就是解决方案。 使用绝对路径时问题的答案:

    hyperlink_element = driver.find_element_by_xpath("/html/body/span[1]/div[2]/div[1]/aside[1]/div[1]/ul[1]/li[5]/a[1]")
    

    使用相对路径的答案在引用类时也适用:

    hyperlink_element = driver.find_element_by_xpath("//ul[@class='nav sidebar-menu']/li[5]/a[1]")
    

    由于 find_element_by_* 在最新版本的 selenium 中已弃用,因此单击超链接的正确方法是:

    hyperlink_element = driver.find_element(By.XPATH, "/html/body/span[1]/div[2]/div[1]/aside[1]/div[1]/ul[1]/li[5]/a[1]")
    hyperlink_element.click()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-04
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 2022-01-06
      • 2021-08-30
      相关资源
      最近更新 更多