Selenium Webdriver 2 のエキスパートの皆様
このフレームワークは初めてなので、次の Web ページ XHTML スニペットに関する XPath 関連の質問についてアドバイスが必要です。
<dl class="cN-featDetails">
<dt class="propertytype">Property type</dt>
<!-- line 3 --> <dd id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_ddPropertyType" class="propertytype type-house" title="Property type: House">House</dd>
<!-- line 3a --> <!-- or class="propertytype type-townhouse"--->
.......
<div class="main-wrap">
<div class="s-prodDetails">
<a id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_hypMainThumb" class="photo contain" href="/Property/For-Sale/House/LA/St Gabriel/?adid=2009938763">img id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_imgMainThumb" title="44 Crown Street, St Gabriel" src="http://images.abc.com/img/2012814/2778/2009938763_1_PM.JPG?mod=121010-210000" alt="Main photo of 44 Crown Street, St Gabriel - More Details" style="border-width:0px;" /></a>
<div class="description">
<h4><span id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_lblPrice">Offers Over $900,000 </span></h4>
<h5>SOLD BY WAISE YUSOFZAI</h5><p>CHARACTER FAMILY HOME... Filled with warmth and charm, is a very well maintained family home in a quiet level street. Be...</p>
</div>
<a id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_hypMoreDetails" class="button" href="/Property/For-Sale/House/LA/St Gabriel/?adid=2009938763">More Details</a>
<dl id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_dlAgent" class="agent">
<!-- line 19 --> <dt>Advertiser</dt>
<!-- line 20 --> <dd class="contain">
<!-- line 20a --> <!-- or class="" -->
<img id="ctl00_ctl00_Content_Content_SrchResLst_rptResult_ctl04_lstTemplate_imgAgencyLogo" title="Carmen Jones Realty" src="http://images.abc.com/img/Agencys/2778/searchlogo_2778.GIF" style="border-width:0px;" />
</dd>
</dl>
</div>
( a ) 要素が存在するかどうかをテストする方法は? たとえば、行 3 または 3a のいずれかが存在しますが、両方は存在しません。findElement() メソッドは、私が回避しようとしている例外を引き起こします。もう 1 つのオプションは、コレクション リストの結果が空かどうかを確認する前に findElements() を使用することです。このアプローチは、それを行うための長い道のりのようです。例外を引き起こすリスクなしに要素の存在を検証する簡単な方法は他にありますか? 次のステートメントは機能しなかったか、例外を引き起こしました:
WebElement resultsDiv = driver.findElement(By.xpath("/html/body/form/div[3]/div[2]/div[1]/h1/em"));
// If results have been returned, the results are displayed in a drop down.
if (resultsDiv.isDisplayed()) {
break;
}
( b ) findElement() または findElements() の一部としてブール演算子と正規表現を組み込むことにより、いずれかの要素の存在を検証する簡単な方法はありますか? これにより、検索が簡素化されるだけでなく、検索の数が大幅に削減されます。
(c) TagName で Element を検索する場合、XPath 構文を使用できますか。例: driver.findElement(By.tagName("/div[@class='report']/result"));
( d ) driver.findElement(By.xpath("//div[@class='main-wrap']/dl[@class='agent']/dd[@ などの XPath 検索で正規表現を使用することは可能ですか? class='' OR @class='contain']")) 行 20 ~ 20a の場合?
( e ) 直後のノードを参照する方法は? たとえば、現在のノードが
過去に XML ドキュメントで XPath を使用したことがありますが、Webdriver 2 内で要素を検索する機能を拡張したいと考えています。
どんな援助も非常に素晴らしいでしょう。
どうもありがとう、
ジャック