无法使用Selenium Webdriver定位元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用Selenium Webdriver定位元素相关的知识,希望对你有一定的参考价值。
我有粘性导航栏,其中列表元素很少,每个列表元素都包含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']
此外,使用操作驱动程序执行单击操作
以上是关于无法使用Selenium Webdriver定位元素的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Java 在 Selenium WebDriver 中定位/填充文本框
Selenium webdriver 无法在 chrome 无头模式下定位元素
无法定位元素 - 使用selenium webdriver在不同的语言环境中自动化网站
selenium webdriver在 ie 中无法定位元素和ie文本框字符输入过慢