我有粘性导航栏,其中列表元素很少,每个列表元素都包含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
根据您共享的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();
你能试试下面提到的xpath吗?
//*[text() = 'Academic']
此外,使用操作驱动程序执行单击操作