我试图用 selenium 将鼠标悬停在菜单栏中的一个元素上,但很难找到该元素。该元素显示如下:
<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
中使用了不正确的 xpath 语法,并且 By.LinkText
仅适用于带有文本和 的
看起来不错,但可能有更多元素具有该类名,这就是为什么您无法获得正确的元素,因此您应该尝试使用下面提供的 xPath 和文本:-a
元素By.ClassName
driver.FindElement(By.XPath("//div[text() = 'TextToFind']"));
或者
driver.FindElement(By.XPath("//div[. = 'TextToFind']"));
或者
driver.FindElement(By.XPath("//*[contains(., 'TextToFind')]"));
希望它有用...:)
关于c# - 通过显示文本查找带有 selenium 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38661830/