2016-02-16 56 views
0

我希望能夠搜索網頁中的某個文本值,然後將此位置存儲爲xpath,以便我可以重新訪問此網頁以查看此文本值是否已更改。如何從webelement獲取Xpath位置

我的想法是使用硒webelement我會搜索頁面上的所有元素的文本值。然後,一旦我有了它,我想提取這個元素的位置。

然後我可以使用之前存儲的位置重新訪問此頁面以檢查最新的文本值。

我在想這樣的事情...

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

for (WebElement el : els) { 
    if (el.getText().contains("some text")){ 
     //store el.xpath 
    } 
} 

這可能嗎?

+0

我想這對任何隨機的網頁工作如此明顯的XPath的參考將是不同的網頁不同。對我來說,關鍵是要找出是否可以從最初通過getText方法找到的webelement中提取或創建xpath引用。 – PaddyWest

回答

0

是,與僞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 
    } 
} 
+0

謝謝djangofan的回覆。由於我對java很陌生,你可以告訴我你的'sub-locator'是什麼意思。另外,你提到使用e.xpath來獲取xpath,你的意思是el.xpath?如果是的話,我看不到來自webelement的xpath選項? – PaddyWest

+0

我更新了代碼片段。我希望能回答你的問題。此外,ByChained定位器可以包含多個鏈接在一起的定位器。第一個,我叫baselocator,第二個叫做子定位器。 – djangofan

+0

是「子定位器」和「storableLocator」的實際Java類嗎? – PaddyWest