2017-04-07 9 views
0

セレン:要素1クラス値

<div id="sessions" class="container" style="display: block;"> 
 
<div id="usrSessionList" class="list" style="height: 109px;"> 
 
<div class="alert alert-info emptyList" style="text-align: center; display: none;" data-i18n="emptySession">No existing session</div> 
 
<div id="D37867BB-56BE-10C0-3421-904FF75AAE23" class="row tableHeight"> 
 
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 user">test12</div> 
 
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 opr"/> 
 
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 lstOprId"/> 
 
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 evt">USR_IN</div> 
 
</div> 
 
<div id="6E1385ED-3027-2B84-9183-433139FDE868" class="row tableHeight"> 
 
<div id="96235B5D-C8B4-5310-6E8F-B247B17482A2" class="row tableHeight"> 
 
<div id="A7BEF619-31C6-C7A9-A4C3-33B8EE583D4D" class="row tableHeight"> 
 
</div> 
 
</div> 
 
<div id="sessionConversation" style="display: none;"> 
 
</div> 
 
</div>

を検索する必要が助けIは、XPathを使用して 'TEST12' を見つけるためにしようとしています。しかし失敗する...

文字列expectedText = "test12";
WebElement Name = driver2.findElement(By.xpath( "// div [(テキスト()、 '" + expectedText + "')]));

誰にも他のアイデアはありますか? ありがとうございました!

+0

[この]の答え(http://stackoverflow.com/questions/23078308/selenium-and-xpath-のようにそれを呼び出しますあなたがこれをデバッグする方法の手がかりを与えるかもしれません。同様に、By.classNameまたはBy.cssSelectorも使用できます。 – Nishan

+0

入手している例外の詳細をお知らせください。/ – Akarsh

+0

みなさん、 ありがとうございます。私はこのメソッドを使用して、テキストの検索に成功しました。 // div [contains(text()、 'Mary')] –

答えて

0

私はこれが再利用される可能性が高いため、このような機能を記述したいと思います。この例では、ユーザーを探しているようです。

あなたは、このセクション

<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 user">test12</div> 
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 opr" /> 
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 lstOprId" /> 
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 evt">USR_IN</div> 

のためにHTMLで見れば、あなたはこれらのDIV秒のすべての4 user、最後のクラスを除いて同じクラスを持っていることがわかります。この情報では、CSSセレクタを作成してこの要素だけを見つけることができます。これを行う1つの方法は、ユーザーの名前が含まれているWebElementを返し

public WebElement getUserName() 
{ 
    return driver.findElement(By.cssSelector("div.user")); 
} 

です。ユーザーの束を一覧表示するページ上でこのようなHTMLのブロックの束がある場合、これがあるとあなたは

System.out.println(getUserName().getText()); 

一つの問題のようにそれを使用します。もう1つのシナリオは、既に知っているユーザーの名前に基づいて要素を検索することです。その場合、要素はユーザーの名前であるテキストで見つけることができます。私たちは、

public WebElement getUserName(String userName) 
{ 
    return driver.findElement(By.xpath("//div[contains(@class, 'user')][.='" + userName + "']")); 
} 

ような関数を書くことができ、あなたは

System.out.println(getUserName("test12")); 
+0

ありがとうJeffC。この関数はうまくいきます –