2017-02-16 8 views
2

Search Results:のXPathを取得しようとしています。しかし、私はそれがテキストを検出していないそれを //span[@class='zeiss-font-Md aletssubtitle'] を与えたときに、それがテキスト値の使用テキスト()関数xpathを取得して他のタグと同じレベルのタグを持たないテキストを取得する方法

を取得するにはスパンに

<div class="col-xs-12"> 
    <div class="col-xs-5" style="padding:0"> 
    <div> 
     <span class="zeiss-font-Md aletssubtitle" style="line-height:3.2"> 
      Search Results : 
      <label class="ACadmincount"> 1 Matching Results</label> 
     </span> 
    </div> 
    </div> 
</div> 

答えて

0

を検出しています。ここのコード

//span[@class='zeiss-font-Md aletssubtitle']/text() 
+0

ありがとうSunil、火花の中のテキストを認識しています。 –

+0

これが助けられたならば、あなたは/ upvote answer;を受け入れることができます;) –

+0

火曜日に感謝のSunil、そのテキストを認識します。しかし、セレンは元素を認識していません。私はテキストを取得しようとしています 'Search Results:' –

0

あなたはあります@Sunil Gargのようなテキストノードを得るにはとseleniumを使用できません(//span[@class='zeiss-font-Md aletssubtitle']/text())。これは、構文的に正しいXPath表現だが、この構文をseleniumサポートしていません:

selenium.common.exceptions.InvalidSelectorException:メッセージ:無効なセレクタ:XPath式の結果「//テキストは、()」です:[オブジェクトテキスト]。 要素である必要があります。

あなたが特定の要素の完全または部分的なテキストの内容を取得したいこと、あなたは

のようなものを使用することができますPythonの

span = driver.find_element_by_xpath("//span[@class='zeiss-font-Md aletssubtitle']") 
span.text # returns 'Search Results : 1 Matching Results' 
driver.execute_script('return arguments[0].childNodes[0].nodeValue.trim()', span) # returns 'Search Results :' 

のJava

WebDriverWait wait = new WebDriverWait(webDriver, 10); 
WebElement span = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//span[@class='zeiss-font-Md aletssubtitle']"))); 
String text = span.getText(); 
JavascriptExecutor jse = (JavascriptExecutor)driver; 
jse.executeScript("return arguments[0].childNodes[0].nodeValue.trim()", span); 
+0

ありがとうAndersson、私はあなたがお勧めしたアプローチを試みた。 SeleniumはXpath // spanを認識できません[@ class = 'zeiss-font-Md aletssubtitle'] –

+0

「認識できません」とはどういう意味ですか?厳密な例外を共有する – Andersson

+0

私は以下のコードを使用しています\t文字列xpath = "// span [@ class = 'zeiss-font-Md aletssubtitle']"; \t int xpathcount = driver.findElements(By.xpath(xpath))。サイズ(); \t System.out.println( "xpathのサイズ:" + xpathcount); \t WebElement span = driver.findElement(By.xpath(xpath)); –

0

CSS Selectoを使用してみることはできますかR以下のように:

driver.findElement(By.cssSelector("span.zeiss-font-Md.aletssubtitle)).getAttribute("innerText");

OR

driver.findElement(By.cssSelector("span.zeiss-font-Md.aletssubtitle)).getText();

も動作するはずです。

0

それは簡単です、あなたが試すことができます:// * [テキスト()= '検索結果:']これは、

おかげで、 エドD、インドのお手伝いを致します

希望。

関連する問題