ABCにアクセスしようとしています。私は単純なBy.ClassName( "bb")はここでは動作しないことを知っています。このコンテンツに他にどのようにアクセスできますか?cを使用してセレンの同じクラスの要素を探す#
<body>
<div id="Frame">
<div class="bb"></div>
<div class="bb">ABC</div>
</div>
</body>
ABCにアクセスしようとしています。私は単純なBy.ClassName( "bb")はここでは動作しないことを知っています。このコンテンツに他にどのようにアクセスできますか?cを使用してセレンの同じクラスの要素を探す#
<body>
<div id="Frame">
<div class="bb"></div>
<div class="bb">ABC</div>
</div>
</body>
以下のCSSセレクタを使用して、「ABC」の値を取得することができます。
.bb:nth-child(2)
あり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のままです。 –
上記のHTMLは正しいですか?そうであれば、これはIFRAMEまたは隠されたものでなければ機能するはずです。 – JeffC
注:これは、要素が*常に* 2番目の要素である場合にのみ有効です。 – JeffC