通过显示文本查找含硒元素
本文关键字:元素 查找 文本 显示 | 更新日期: 2023-09-27 17:59:10
我试图将鼠标悬停在带有硒元素的菜单栏中的一个元素上,但很难找到该元素。元素显示如下:
<DIV onmouseover="function(blah blah);" class=mainItem>TextToFind</DIV>
有多个这种类型的元素,所以我需要通过TextToFind
找到这个元素。
我试过:
driver.FindElement(By.XPath("TextToFind"))
和
driver.FindElement(By.LinkText("TextToFind"))
两者都不起作用。我甚至尝试过:
driver.FindElement(By.ClassName("mainItem"))
这也不起作用。有人能告诉我我做错了什么吗?
您在By.Xpath
和By.LinkText
中使用了不正确的xpath语法,仅适用于带文本的a
元素,By.ClassName
看起来不错,但可能有更多具有该类名的元素,这就是您无法获得正确元素的原因,所以您应该尝试使用下面提供的带文本的xpath:-
driver.FindElement(By.XPath("//div[text() = 'TextToFind']"));
或
driver.FindElement(By.XPath("//div[. = 'TextToFind']"));
或
driver.FindElement(By.XPath("//*[contains(., 'TextToFind')]"));
希望它能起作用…:)
最好忽略文本周围的空白:
var elm = driver.FindElement(By.XPath("//a[normalize-space() = 'TextToFind']"));
这将搜索[a]元素中的文本,您可以将其替换为您感兴趣的任何元素(div、span等)。