无法使用Selenium Webdriver定位元素

问题描述 投票:3回答:2

我有粘性导航栏,其中列表元素很少,每个列表元素都包含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,我收到这样的错误无法找到元素。

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
2个回答
0
投票

根据您共享的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();

0
投票

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

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

此外,使用操作驱动程序执行单击操作

© www.soinside.com 2019 - 2024. All rights reserved.