0

ホバーボックスの情報コンテンツをstdoutに印刷する必要がありますが、以下の方法で試しましたが、うまくいきませんでした。

data = $browser.div(:class => "homeSectionLabel textWidget",:text => /Pool A/ ).hover

print "Data  #{data} \n"

そして、同じクラス名のプールBと呼ばれる他のウィジェットがあるという他の問題。そのホバー情報にアクセスする方法

<div class="widgetContainer poolContainer">
<div class="healthBadge healthUnknown" style="top: -5px; left: -5px;"></div>
<div class="homeSectionLabel textWidget">Pool‌·A</div>
<div class="perfDisplay homePoolPerf">
</div>
<div class="homePoolVolText textWidget">9‌·Volumes,‌·0‌·Snapshots</div>
<div class="spaceMeterContainer poolMeter" style="width: 265px; height: 20px;">
</div>
<table class="tableWidget homeTiers" cellspacing="0" cellpadding="0" border="0">
</table>
</div>

Anyhelpは本当にありがたいです。

ありがとう!
アディティア

4

2 に答える 2

0

最新のコメントに基づいて、これにより、ページ上のすべてのdivからクラス名が収集され、コンソールに出力されます。

$browser.divs.each do |div|
puts div.class
end

ファイルに入れたい場合は、「putsdiv.class」をfileディレクティブに置き換えます。ここでの出力はすべて単純なRubyです。

于 2012-04-12T20:06:10.420 に答える
0

これは現時点ではあまり答えではありませんが、私が言わなければならないことはコメントに収まりません

div内のテキストのような「コンテンツ」には、通常、.textメソッドを使用してアクセスします。

「ツールチップ」テキストはさまざまな方法で実行できます。alt属性を使用することも、「onmouseover」イベントを介してトリガーされるjavascriptを使用することも、通常は:hoverpsuedoclassを介してCSSで駆動することもできます。

divが単にその表示プロパティまたは場所を変更してユーザーに表示されるようにする場合は、そのdivを見つける方法を理解し、そこから.textを取得するだけです。

mydata = browser.div(:how =>'what')。text

マウスオーバー/ホバーの結果としてdiv(または他のコンテナ)のコンテンツが変更されている場合は、アクションをシミュレートし、クライアント側のコードが実行されるまで少し待ってから、.textを取得する必要があります。変更されたコンテナ。


コードが機能しているページを見ないと、どちらが当てはまるかを判断するのは困難ですが、提供したコードに「onmouseover」のようなものがないことを考えると、最初の賭けはこれがCSS駆動であることになります。

上記のコードは、divオブジェクトが.hoverメソッドを実行した結果を返しています。このメソッドは何かを引き起こしますが、値を返さないため、私が知る限り、これはnilになります。

「プールA」はキャプチャしようとしているテキストですか、それとも他のテキストをユーザーに表示させるためにマウスオーバーしたものですか?マウスオーバーした場合は、HTMLを検索して、他のdivに表示されるテキストを見つけることができるかどうかを確認しましたか?

特定のクラスのすべてのdivからテキストを取得する必要がある場合は、次のようにしてみてください

browser.divs(:class => "homeSectionLabel textWidget").each do |div|
  puts div.text
end
于 2012-04-13T21:42:42.427 に答える