1

私はWatirを使用してWebアプリケーションのテストを作成しています。以下のHTMLから「Bishop」というテキストを取得する必要がありますが、その方法がわかりません。

<div id="dnn_ctr353_Main_ctl00_ctl00_ctl00_ctl07_Field_048b9dfa-bc64-42e4-8bd5-b45385e5f45b_view" style="display: block;">
   <div class="workprolabel wpFieldLabel">
    <span title="Please select a courtesy title from the list.">Title</span>&nbsp;<span class="validationIndicator wpValidationText"></span>
   </div>
   <span class="wpFieldViewContent" id="dnn_ctr353_Main_ctl00_ctl00_ctl00_ctl07_Field_048b9dfa-bc64-42e4-8bd5-b45385e5f45b_view_value"><p class="wpFieldValue ">Bishop</p></span>
  </div>

Firebugによると、xpathは次のとおりです。

html/body/form/div[5]/div[6]/div[2]/div[2]/div/div/span/span/div[2]/div[4]/div[1]/span[1]/div[2]/span/p/text()

しかし、element_by_xpathをフォーマットして取得することはできません。

4

5 に答える 5

1

段落が一意である場合は、すぐにその段落にアクセスできるはずです。

my_p = browser.p(:class, "wpFieldValue ")
my_text = my_p.text

WatirでサポートされているHTML要素を参照してください

于 2010-07-15T10:38:27.850 に答える
0

実行時に、THEDIVスタイルがNONEからBLOCKに変更されているようです。

したがって、この場合、テキスト(ソース全体またはDIVソース)を収集する必要があり、テキストから値を収集します

例えば ​​:

text=ie.text

particular_div=text.scan(%r{div id="dnn_ctr353_Main_ctl00_ctl00_ctl00_ctl07_Field_048b9dfa-bc64-42e4-8bd5-b45385e5f45b_view" style="display: block;(.*)</span></div>}im).flatten.to_s

particular_div.scan(%r{ <p class="wpFieldValue ">(.*)</p> }im).flatten.to_s

上記のコードは、問題を解決するためのサンプルです。

于 2010-07-16T06:54:12.957 に答える
0

試す

//span[@id='dnn_ctr353_Main_ctl00_ctl00_ctl00_ctl07_Field_048b9dfa-bc64-42e4-8bd5b45385e5f45b_view_value']//text()

編集:

多分これはうまくいくでしょう

path = "//span[@id='dnn_ctr353_Main_ctl00_ctl00_ctl00_ctl07_Field_048b9dfa-bc64-42e4-8bd5b45385e5f45b_view_value']/p";
ie.element_by_xpath(path).text

そして、スパンのIDが一定であるかどうかを確認します

于 2010-07-15T10:17:16.523 に答える
0

名前の最後に余分なスペースがあるのではないでしょうか。

<p class="wpFieldValue ">
于 2010-07-15T11:39:27.173 に答える
0

これらのいずれかを試してください(私のために働いた、最初の例の後に続くスペースに注意してくださいwpFieldValue):

browser.p(:class => "wpFieldValue ").text
#=> "Bishop"

browser.span(:id => "dnn_ctr353_Main_ctl00_ctl00_ctl00_ctl07_Field_048b9dfa-bc64-42e4-8bd5-b45385e5f45b_view_value").text
#=> "Bishop"
于 2010-07-15T12:55:30.683 に答える