Java 如何从webelement获取Xpath位置

Java 如何从webelement获取Xpath位置,java,xpath,selenium-webdriver,Java,Xpath,Selenium Webdriver,我希望能够在网页中搜索特定的文本值,然后将此位置存储为xpath,以便可以重新访问此网页,查看此文本值是否已更改 我的想法是使用SeleniumWebElement,在页面上的所有元素中搜索文本值。一旦我有了它,我想提取这个元素的位置 然后,我可以使用以前存储的位置重新访问此页面,以检查最新的文本值 我在想这样的事情 java.util.List<WebElement> els = driver.findElements(By.cssSelector("*")); for ( We

我希望能够在网页中搜索特定的文本值,然后将此位置存储为xpath,以便可以重新访问此网页,查看此文本值是否已更改

我的想法是使用SeleniumWebElement,在页面上的所有元素中搜索文本值。一旦我有了它,我想提取这个元素的位置

然后,我可以使用以前存储的位置重新访问此页面,以检查最新的文本值

我在想这样的事情

java.util.List<WebElement> els = driver.findElements(By.cssSelector("*"));

for ( WebElement el : els ) {
    if (el.getText().contains("some text")){
        //store el.xpath
    }
}
java.util.List els=driver.findElements(By.cssSelector(“*”);
对于(WebElement el:els){
如果(el.getText()包含(“一些文本”)){
//存储el.xpath
}
}

这可能吗?

是的,使用伪java代码,循环css定位器列表,如下所示:

By sub-locator = By.xpath(".//*[contains(.,'some text')]");
for ( WebElement el : els ) {
    By storableLocator = new ByChained(el, sub-locator);
    if ( storableLocator is visible )
    {
        //store storableLocator
     }
}

我希望这能在任何随机网页上工作,因此很明显,xpath引用对于不同的网页是不同的。对我来说,关键是找出是否可以从最初通过getText方法找到的webelement中提取或创建xpath引用。感谢djangofan的回复。因为我是java新手,你能告诉我“子定位器”是什么意思吗。另外,您提到使用e.xpath来获取xpath,您是指el.xpath吗?如果是这样,我在webelement中看不到xpath选项?我更新了代码片段。我希望这能回答你的问题。此外,ByChained定位器可以包含多个链接在一起的定位器。第一个,我称之为baselocator,第二个,我称之为sub-locator。它们是“sub-locator”和“storableLocator”实际的java类吗?不,它们是By.class的实例。啊,好的,我明白了。谢谢你!!