提问人:KurryF 提问时间:11/8/2023 更新时间:11/8/2023 访问量:57
OpenQA.Selenium.NoSuchElementException:没有这样的元素:无法找到元素
OpenQA.Selenium.NoSuchElementException : no such element: Unable to locate element
问:
我有一个网页,我正在尝试使用这个练习网站 https://practicetestautomation.com/practice-test-login/ 用硒自动化,我的脚本中有等待条件,所以我不确定为什么会发生这种情况。Selenium 无法找到抛出此异常的链接:
OpenQA.Selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“method”:“链接文本”,“selector”:“练习”} (会话信息:chrome=119.0.6045.106);有关此错误的文档,请访问:https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
我正在尝试在页面上找到“练习”URL,这是存在该 URL 的网页的代码:
<nav class="menu"><ul id="menu-primary-items" class="menu-primary-items"><li id="menu-item-43" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-43"><a href="https://practicetestautomation.com/">Home</a></li>
<li id="menu-item-20" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20"><a href="https://practicetestautomation.com/practice/">Practice</a></li>
<li id="menu-item-21" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21"><a href="https://practicetestautomation.com/courses/">Courses</a></li>
<li id="menu-item-19" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-19"><a href="https://practicetestautomation.com/blog/">Blog</a></li>
<li id="menu-item-18" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-18"><a href="https://practicetestautomation.com/contact/">Contact</a></li>
</ul></nav>
这是 Selenium 中的代码,说我有问题,:
IWebElement link = driver.FindElement(By.LinkText("Practice"));
String hrefAttr = link.GetAttribute("href");
答:
0赞
Shawn
11/8/2023
#1
当您无法使用一种定位器策略(在您的情况下)定位元素时,您可以随时尝试使用其他定位器策略(例如)。
尝试使用以下 XPath 表达式 -LinkText
XPATH
//li[@id='menu-item-20']//a
更改代码,如下所示:
IWebElement link = driver.FindElement(By.XPath("//li[@id='menu-item-20']//a"));
String hrefAttr = link.GetAttribute("href");
0赞
Gulzhas Mailybayeva
11/8/2023
#2
如上所述,尝试将 linkTest 更改为 xpath:
//a[text()='Practice']
也可以添加 implicitlyWait
评论