c# - 通过显示文本查找带有 selenium 的元素

标签 c# html selenium

我试图用 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 仅适用于带有文本和 a 元素By.ClassName 看起来不错,但可能有更多元素具有该类名,这就是为什么您无法获得正确的元素,因此您应该尝试使用下面提供的 xPath 和文本:-

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/

相关文章:

c# - MenuItem 背景不透明度而不是其文本?

c# - WCF 命名管道最小示例

HTML CSS 表格宽度不工作

html - 图片库使用 flexbox : fill blank space with other images

html - 更改 ios 上多选输入的默认文本

python - 如何使用两个变量迭代 xpath?

javascript - React - Selenium 测试

c# - 如何从字符串中获取数字

c# - 如何重定向 .nuget 文件夹? nuget包与SDK nuget包的区别

javascript - Jmeter + selenium api - Java 脚本未处理错误