0

フレームの一部の属性を返すと、たとえば Firebug の属性と一致しないという問題があります。その理由は、フレームの目的を特定する方法を探しているからです。たとえば、www.cnet.com では、合計 19 フレームが読み込まれ、そのうちのいくつかは JavaScript を使用した HTML です。すべてではなく一部のフレームを検査したい。

Firebug を使用すると、フレームに関するいくつかの興味深い属性が表示され、これらの属性のいくつかに基づいてフレームをフィルター処理したいと考えています。

必要な属性の例として、次の Ruby コードがあります。

puts "Tag name: " + frame.attribute_value("tagName")
puts "Local name: " + frame.attribute_value("localName")
puts "Node name: " + frame.attribute_value("nodeName")

出力は次のとおりです。

Tag name: IFRAME
Local name: iframe
Node name: IFRAME

ただし、これはページ www.cnet.com の childNodes/Children の Firebug からの出力です。

ここに画像の説明を入力

Firebug を参照すると、リストの最初の項目には次の属性があります。

Tag name: DIV
Local name: div
Node name: DIV

ところで、私は Linux 上の Firefox でヘッドレスで water-webdriver を使用しています。

どんな助けでも大歓迎です。

4

1 に答える 1

1

答えは、Firefox が表示しているのと同じ属性を求めているわけではないということです。

リストの一番上にある DIV の場合、Watir が「gigya_ruler」を返すようにしたい場合は、名前ではなく、div の ID 属性を要求する必要があります。

Twitter ハブ フレームについても同様です。

これをすべて Watir コードに変換すると、次のようになります。

@b = Watir::Browser.new :ff

div = @b.div(index: 0)
puts div.id # => 'gigya_ruler'

frame = @b.iframe(index: 0)
puts frame.id # => 'twttrHubFrameSecure'
于 2014-02-21T20:25:46.283 に答える