java - 从 webelement 到另一个 webelement 的相对 xpath

标签 java selenium xpath

所以我尝试使用 XPath 从一个 webelement 到另一个 webelement。 这就是 webelement 所在的路径,我通过使用“findElementsByClassName”找到它。

//*[@id="appView2"]/div/div[3]/div/table/tbody[3]/tr[2]/td[2]/div/div[2]/div/div/div

这就是我需要到达的地方。

//*[@id="appView2"]/div/div[3]/div/table/tbody[3]/tr[2]/td[2]/div/div[1]/span

我不能直接指向它,因为每个网络元素的列和行都会发生变化。

我尝试了几种不同的路径,例如:

.//.//.//.//div[1]/span

但它找不到该元素。

如果有人有更好的解决方案,那也是可行的。

谢谢!

最佳答案

您确实不应该依赖这样的索引(例如 div[3] 或 tbody[3])。它使您的实现变得脆弱,对 html 进行最轻微的更改就会中断。而不是

//*[@id="appView2"]/div/div[3]/div/table/tbody[3]/tr[2]/td[2]/div/div[2]/div/div/div

你可以做类似的事情

//*[@id="appView2"]//table[@class='xxx']//div[text()='xxx']

回答你原来的问题,而不是

.//.//.//.//div[1]/span

它会是这样的

../../../../div[1]/span

关于java - 从 webelement 到另一个 webelement 的相对 xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57883477/

相关文章:

xpath - 使用正则表达式模式检查 XML 元素的属性值

java - Spring:xml配置转换为java配置

java - 最简单的碰撞LWJGL JAVA方法

java - 根据 maven android 构建配置文件更新应用程序名称和 Logo

silverlight - Silverlight 应用程序的自动化测试 : MS Test Manager vs Selenium

angularjs - 需要通过匹配span下的标题文本来定位按钮

java - 在 eclipse : SEVERE: ContainerBase. addChild : start: org. apache.catalina.LifecycleException 中获取错误:

java - 根据运行时的方法名称命名屏幕截图

java - 在 PATH 中找不到 firefox 二进制文件。确保已安装 firefox。远程驱动程序中出现错误

php - 包含带有重音符号或字符的文本的 XPath 元素选择