通过显示文本查找含硒元素

本文关键字:元素 查找 文本 显示 | 更新日期: 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.XpathBy.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等)。