java - 我如何创建一个 XPath 来查找按钮文本或按钮内嵌套元素的文本?

标签 java selenium selenium-webdriver xpath

我正在使用 Selenium 网络驱动程序来测试一个按钮,这个按钮可以有这样的文本

<button>Foo</button>

或者它可以看起来像这样带有任何类型或深度的嵌套标签。

<button><span>Foo</span></button>

我试过

Driver.findElement(By.xpath("//*[text()='Foo']")); 

但这只会获取直接标记级别的文本。我在 xpath 中添加了一个“//*”,它适用于嵌套元素,但当文本处于直接级别时停止工作。我正在寻找一种 OR 条件,或者我可以让它在两种变体上都起作用的东西。

我正在使用 Java 和 selenium 网络驱动程序。

提前致谢

胡安

最佳答案

试试这个:

driver.findElement(By.xpath("//button[contains(.,'Foo')]")); 

这将搜索包含 Foo 文本内容的 button 元素本身或其任何子元素,正是您所要求的。
顺便说一句,在 Java 中,我们通常给对象名称以非大写字母开头,所以它应该是 driver,而不是 Driver

关于java - 我如何创建一个 XPath 来查找按钮文本或按钮内嵌套元素的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73625115/

相关文章:

java - Exec 命令似乎无法在 java 中正确执行

java - Maven、testng、surefire : not running AfterClass

c# - 如何使用 WebDriver 在 Visual Studio 中更改单个测试类的配置类属性

java - 不在 Top Java 上保持专注

java - 如何从代码库中删除 System.out.println

java - XML 解析期间字母显示不正确

java - TestNG 中的优先事项

带有 Selenium 的 Python : rerun on pre-existing browser

java - Selenium-Standalone-Server 无法在 Firefox 上运行并保持空白

python - 属性错误: 'WebElement' object has no attribute 'copy' error when moved the function Select to a common file using Selenium Python through Django