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

私は上記のhtmlコードを持っています。 文字列 "to"の後に移入される動的値を取得します。 XPathでは、私は試しましたが、価値を得られませんでした。 regexまたはXPathを使用して必要な値を取得する方法はありますか。XPATHまたは正規表現を使用して正しい値を取得

答えて

1

「を」

予想される答えは、テキストが「XYZにABCから変更」されたXYZです(そしてこれは、実行時に移入されますのでご注意ください)

予想される答えは文字列の後に何であるあなたは、いくつかのフォーラムを見ることができ、あなたは答えを見つけることができますが、あなたは次のXPathを使用することができます:あなたが使用できるXPathをテストするために

/span/text() 

http://www.xpathtester.com/xpath

しかし、これが重複しているが、このことについて、いくつか既に開いSO質問があります。 XPath: select text node

が、それはあなたがBy.xpathを使用して所望のテキストと以下のようにいくつかのJavaのものを得ることができます

+0

返信いただきありがとうございますが、私はABCとXYZの両方を取得します。私はXYZに興味があります。つまり、 "to"の後の任意の値 – Vikram

+0

Vikramに別の質問があります:http://stackoverflow.com/questions/105613/can-xpath-return-only-nodes-that-have-a-child- of-x。この開発をしていて、実際にビルドしているなら、あなたの人生を助ける新しい属性を追加することができます。サポートブラウザの属性に問題が生じないようにするには、属性にCM_(カスタムなど)を付けてください。そして、それらを探してください。 – Deceiver

+0

私は1ページをテストしていますが、この種のhtmlがあり、このテキストを取得するのに苦労しました。これは、アクション1の後にこのテキストがロードされるために必要です。この後、私は恐ろしいことになるでしょう。アクション2 – Vikram

1

ホープ: -

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

'selenium'を使っているなら@Vikram ...' xpath'から直接テキストを見つけることはできません... 'xpath'から' text() 'ノードを使うようなことを考えるなら、それはセレンでは機能しません.. :) –

+0

Robotframework/javaで使用しようとしましたが、正しいですが、xpathから直接値を取得できません – Vikram

関連する問題