【发布时间】:2021-10-10 07:05:53
【问题描述】:
我正在使用 C# 的 Selenium Web 驱动程序,我使用的浏览器是 Google Chrome。当我尝试获取下面 HTML 代码片段中演示的元素的内部 html(文本)时,我得到 "no such element: Unable to locate element: {"method":"css selector","选择器":"span"}" 错误。
<a class="profile-link" href="#">
<span dir="ltr">
<span aria-hidden="true">FirstName LastName</span>
<span class="visually-hidden">xxxxxxxxxxx</span>
</span>
</a>
我用来获取包含 FirsName 和 LastName 的跨度的 C# 代码是:
string result = driver.FindElements(By.ClassName("profile-link")).Last().FindElement(By.TagName("span")).FindElement(By.TagName("span")).Text;
另外,当我尝试使用FindElements 和Last() 而不是FindElement 来获取名字和姓氏时,我得到“序列不包含任何元素”
在这种情况下,我使用的代码是:
string result = driver.FindElements(By.ClassName("profile-link")).Last().FindElements(By.TagName("span")).Last().FindElements(By.TagName("span")).First().Text + ",";
如何解决此问题并获取包含 FirstName 和 LastName 的 span 的内部 HTML?
【问题讨论】:
-
你能分享那个页面的链接吗?如果可能的话,你所有的相关代码
-
driver.FindElements(By.ClassName("profile-link")).Last()是否会返回您期望的 Anchor 元素? -
@rene 是的。实际上,cruisepandey 和 Prophet 回答了这个问题。感谢您的关注。
标签: c# html selenium selenium-webdriver selenium-chromedriver