【问题标题】:Unable to locate element using Selenium Webdriver无法使用 Selenium Webdriver 定位元素
【发布时间】:2018-02-26 13:02:52
【问题描述】:

我有一个粘性导航栏,它有几个列表元素,每个元素都包含 href 元素。当我试图定位元素时,我得到了错误。 以下是我的 HTML 代码:

 <div class="nav" id="sticky">
                <div class="container">
                    <ul class="main-nav">
                        <li><a href="Dashboard.aspx">Dashboard</a></li>
                        <li><a href="../MEFAcademicDash/StudentUI/StudentHome.aspx"
                            title="Academic Dashboard">Academic</a></li>
                        <li><a href="Notices.aspx">Notices</a></li>

我想通过 Webdriver 定位 Academic,我收到类似这样的错误 Unable to locate the element。

org.openqa.selenium.NoSuchElementException: Unable to locate element: /html/body/div/form/div[5]/div[1]/ul/li[2]/a

【问题讨论】:

    标签: java selenium testing selenium-webdriver


    【解决方案1】:

    根据您共享的 HTML,您需要诱导 WebDriverWait 以使元素 可见 / 可点击。在带有文本 Academic 的链接上 click() 您可以使用以下代码行:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='nav' and @id='sticky']/div[@class='container']/ul[@class='main-nav']//li/a[@title='Academic Dashboard' and contains(@href,'../MEFAcademicDash/StudentUI/StudentHome.aspx')]"))).click();
    

    【讨论】:

      【解决方案2】:

      你能试试下面提到的 xpath 吗?

      //*[text() = 'Academic']
      

      另外,使用动作驱动来执行点击动作

      【讨论】:

        猜你喜欢
        • 2016-04-15
        • 1970-01-01
        • 2016-12-10
        • 2018-09-30
        • 2020-01-09
        • 2020-05-30
        • 1970-01-01
        • 1970-01-01
        • 2021-04-12
        相关资源
        最近更新 更多