无法使用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文本框字符输入过慢

如何通过 Selenium WebDriver 和 Python 定位用户名和密码元素

无法使用 java 在 firefox 上的 selenium webdriver 中处理警报