4

次のようなHTMLの部分があります。

<table><tbody><tr>
<td><div> Text Goes Here </div></td>
<td> ... rest of table

テキストを含むdivを簡単に識別するためのID、タイトル、記述子はありません。

ページでエラーが発生すると、「Text GoesHere」がある場所にエラーが挿入されます(エラーが発生しない限り、テキストは存在しません)。各エラーには「有効」という単語が含まれています。例:「フォームには有効な名前が含まれている必要があります」または「無効な日付範囲が選択されています」

私は現在、次のようなWatirコードを持っています。

if browser.frame(:index => 0).text.includes? "valid"
  msg = # need to get full text of message
  return msg
else
  return true
end

このような状況で全文を取得する方法はありますか?基本的に:「有効」というテキストを含む要素の全文を返しますか?

使用:Watir 2.0.4、Webdriver 0.4.1

4

2 に答える 2

2

あなたが提供した構造を考えると、divは非常に頻繁に使用されるため、Daveが答えに示しているように、正規表現を使用してテーブルセルを探す傾向があります。ネストされたテーブルがたくさんない限り、必要なテキストだけが返される可能性が高くなります。

また、「valid」が他の場所に表示される可能性がある場合は、テキストの少し大きいサンプルを提供して検索することをお勧めします。

。browser(:cell => / valid /)。text

于 2012-04-28T07:12:01.727 に答える
1

これを試して

return browser.div(:text => /valid/).text

また

return browser.table.div(:text => /valid/).text

有効なものが見つからない場合は、nilを返す必要があります。

于 2012-04-27T20:33:58.080 に答える