2013-10-27 51 views
0

我有一個問題,如果我返回一個框架的某些屬性,他們不匹配那些在Firebug例如。原因是我正在尋找一種方法來識別框架的目的。例如在www.cnet.com上,它們總共加載了19幀,其中一些是帶JavaScript的HTML。我想檢查一些框架,但不是全部。Watir-Webdriver框架屬性不與其他來源

使用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 

然而這是從螢火蟲輸出用於的childNodes /兒童頁面www.cnet.com:

enter image description here

如果我指的是Firebug的名單上的第一個項目具有以下屬性:

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

順便說一句,我使用的水,用的webdriver在Linux下的Firefox無頭。

任何幫助表示讚賞。

+0

你能在這個問題上是什麼詳細點嗎?你說watir-webdriver不符合Firebug。但目前還不清楚Firebug返回的內容以及差異如何導致腳本中的實際問題。 –

回答

1

答案是你沒有要求Firefox顯示給你的屬性。

以您列表頂部的DIV爲例,如果您想要Watir返回「gigya_ruler」,那麼您必須要求div的ID屬性,而不是名稱。

twitter hub框架也一樣。

轉換這一切的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'