2016-06-22 3 views
0

ABCにアクセスしようとしています。私は単純なBy.ClassName( "bb")はここでは動作しないことを知っています。このコンテンツに他にどのようにアクセスできますか?cを使用してセレンの同じクラスの要素を探す#

<body> 
<div id="Frame"> 
<div class="bb"></div> 
<div class="bb">ABC</div> 
</div> 
</body> 

答えて

1

以下のCSSセレクタを使用して、「ABC」の値を取得することができます。

.bb:nth-child(2) 
+0

注:これは、要素が*常に* 2番目の要素である場合にのみ有効です。 – JeffC

0

"XPath"表現を使用して、要素を検索または特定することができます。

例:ライン以下のあなたのXMLの使用についてはelement = findElement(By.xpath("Your xpath expression");

element = findElement(By.xpath("/body/div/div[@class='bb'][node()]");

+0

「ABC」テキストを検索条件としてXPathに追加してみませんか?それは最適と思われる。あなたの現在の答えは質問に答えません。 – JeffC

+0

Xpathはこの要素では機能していないようです。 –

0

ありXPathを使用して検索でこれを行う方法ですが、私は、XPathの専門家ではないです。私はあなたにCSSセレクタを使って解決策を与えることができます。基本的には、クラスBbを持つすべてのDIVを取得し、テキストを検索して目的のテキストを探します。

String searchText = "ABC"; 
IReadOnlyCollection<IWebElement> divs = driver.FindElements(By.CssSelector("div.bb")); 
foreach (IWebElement div in divs) 
{ 
    if (div.Text == searchText) 
    { 
     break; // exit the for and use the variable 'div' which contains the desired DIV 
    } 
} 
+0

答えをありがとう。これはうまくいかないようです。私の部門数は常に0のままです。 –

+0

上記のHTMLは正しいですか?そうであれば、これはIFRAMEまたは隠されたものでなければ機能するはずです。 – JeffC

関連する問題