2016-05-25 10 views
1

HTMLコードの下にある "This is testing selector"というテキストを選択します。Seleniumを使用してテキストを選択する

<div class="breadcrumb"> 
    <a title=" Home" href="http://www.google.com/"> Home</a> 
    <span class="arrow">»</span> 
    <a title="abc" href="http://www.google.com/">test1</a> 
    <span class="arrow">»</span><a title="xyz" href="http://www.google.com/">test2</a> 
    <span class="arrow">»</span> 
    This is for testing selector 
    </div> 
+0

あなたは '.getText();で試しました – Emna

+0

@ Emna:それは動作しません – user2940827

+0

申し訳ありませんが、私はたくさん集中していませんでした、私はそれをチェックしてください! – Emna

答えて

0

を持っているためにここにそれを置きますこのために簡単な方法があるかどうかわからない。私が思ったよりも難しいことが判明しました。下記のコードはローカルでテストされ、正しい出力が得られます。)

String MyString= driver.findElement(By.xpath("//div[@class='breadcrumb']")).getText(); 
    //get all child nodes of div parent class 
    List<WebElement> ele= driver.findElements(By.xpath("//div[@class='breadcrumb']/child::*")); 
     for(WebElement i:ele) { 
     //substracing a text of child node from parent node text 
     MyString= MyString.substring(i.getText().length(), MyString.length()); 
     //removing white spaces 
     MyString=MyString.trim(); 
      } 

    System.out.println(MyString); 

あなたがうまく動作しているかどうか教えてください!

+0

はい、それは働いたが、長いコードを実行する時間がかかります。 – user2940827

0

enter image description hereこの例を試してみてください。

driver.get("http://www.google.com/"); 
    WebElement text = 
    findElement(By.className("breadcrumb")).find("span").get(1); 

    Actions select = new Actions(driver); 
    select.doubleClick(text).build().perform(); 

私は「あなたが必要なテキストのXPathをコピーすることも示唆して正確なのxpath enter image description here

+0

ここでは「google」とは何ですか – user2940827

+0

選択したいテキストのパスがわかりません。これは、実行する必要のある選択アクションを示す単なる例です! – Emna

+0

テキストにはxパスがありません – user2940827

0

xpathを使用して要素内のテキストを選択することはできません。 Xpathは、XML要素(この場合はHTML要素)の選択にのみ役立ちます。 通常、テキストはスパンタグで囲む必要がありますが、あなたの場合はそうではありません。

しかし、あなたができることは、テキストを含むdiv要素を選択することです。このXPathを試してみてください:

(//div[@class='breadcrumb']/span)[3]/following-sibling::text() 

あなただけの内のテキストを取得したい場合は、Abhijeetの回答を試みることができます。追加チェックとして、getText()をルート要素に使用して取得した文字列に、子要素にgetText()を使用して取得した文字列が含まれているかどうかを確認します。

関連する問題