2016-07-28 79 views
-4
<span> 
     <b>Changed from </b>ABC 
    <span> 
    </span> 
     <b>to </b> 
     XYZ 
    </span> 

我有上面的html的代碼。 我想檢索字符串「to」後填充的動態值。我嘗試了XPath,但沒有獲得價值。 有什麼辦法可以使用正則表達式或XPath來獲得所需的值。使用XPATH或正則表達式獲取正確的值

預期的答案是XYZ(,請注意這是在運行時填充)

的文本「從ABC更改爲XYZ」

預期的答案字符串後面是什麼「到」

回答

1

你可以看一些論壇,你會找到答案,但可以使用以下XPath:

/span/text() 

爲你測試的XPath你可以使用: http://www.xpathtester.com/xpath

但是,這是一個重複的,已經有幾個打開,這樣的問題這一點: XPath: select text node

希望它可以幫助

+0

感謝您的回覆,但我得到了ABC和XYZ。我只對XYZ感興趣,即「到」後的任何值 – Vikram

+0

Vikram還有另外一個問題:http://stackoverflow.com/questions/105613/can-xpath-return-only-nodes-that-have-a-child-的-X。如果你正在進行這種開發,並且實際上正在開發,你可以添加新的屬性來幫助你的生活。爲了避免支持瀏覽器屬性出現問題,只需在屬性前加上CM_(例如自定義)即可。然後只要找他們。 – Deceiver

+0

我正在測試一個頁面,它有這種類型的html,我正在努力獲得這個文本。我需要這個,因爲在Action 1之後這個文本被加載了。只有在這之後,我才能夠行動2 – Vikram

1

你可以使用By.xpath和如下一些Java的東西的慾望文本: -

WebElement el = driver.findElement(By.xpath("(//span)[2]")); 
String wholeText = el.getText(); 
String desireText = wholeText.substring(wholeText.lastIndexOf(" ") + 1); //it will gives XYZ 

String wholeText = el.getAttribute("innerHTML"); 
String desireText = wholeText.substring(wholeText.lastIndexOf(">") + 1); //it will gives XYZ 

希望它有助於.. :)

+0

謝謝SAurabh,我曾考慮過這個問題,但我正在尋找純XPath或正則表達式。 – Vikram

+0

@Vikram如果你正在使用'selenium' ......你無法直接從'xpath'中找到文本......如果你認爲像從'xpath'使用'text()'節點一樣,它不適用於硒.. :) –

+0

嘗試將它與Robotframework/java一起使用,但是您正確無法從xpath直接獲取值 – Vikram

相關問題