Java 从webelement到另一个webelement的相对xpath

Java 从webelement到另一个webelement的相对xpath,java,selenium,xpath,Java,Selenium,Xpath,所以我试图通过使用XPath从一个webelement到另一个webelement。 这就是webelement所在的路径,我使用“findElementsByClassName”找到它 这就是我要去的地方 //*[@id="appView2"]/div/div[3]/div/table/tbody[3]/tr[2]/td[2]/div/div[1]/span 我不能直接指向它,因为每个web元素的列和行都会改变 我尝试了几种不同的方法,如: .//.//.//.//div[1]/span

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

这就是我要去的地方

//*[@id="appView2"]/div/div[3]/div/table/tbody[3]/tr[2]/td[2]/div/div[1]/span
我不能直接指向它,因为每个web元素的列和行都会改变

我尝试了几种不同的方法,如:

.//.//.//.//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

请添加html源代码以便我们提供帮助?解决方案确实有效,因此谢谢!另外,当我四处搜索时,我可以使用“findElementsByClassName”来查找第一个元素,如下所示:unitDriver.findElementsByClassName(“日历时间信息”);是的,在html中使用类名、ID或文本,而不是使用带有索引的非常特定的xpath。通过这种方式,html可以随着时间的推移而改变,而不会破坏您的XPath。如果您可以控制html,那么最好将ID放在需要引用的所有内容上,同时避免XPath
.//.//.//.//div[1]/span