无法在Watir中按宽度定位多个iframe

时间:2014-12-05 11:58:23

标签: iframe watir

require 'watir'

@browser = Watir::Browser.new #:phantomjs (same for firefox)
@browser.window.maximize 

@browser.goto 'http://www.romnation.net/'

a = @browser.iframes(width: '160')
puts a[0].width 

返回 728 。即使我明确声明我只想要宽度 160 的iframe。

a = @browser.iframe(width: '160')
puts a.width 

按预期返回 160

为什么这样,我如何定位一定宽度的多个iframe? (除了检查每个iframe的宽度外)

1 个答案:

答案 0 :(得分:2)

这看起来像IFrameCollection#to_a

中的错误

IFrameCollection#elements正在收集iframe的正确子集,但会在页面上找到的整个iframe列表中使用该子集的索引号。这个周末我会花一些时间。当我提出拉取请求时,我会将其链接到这里。

与此同时,这个“有效”,但并不理想,因为它为您提供了一个元素,而不是IFrame:

iframes = browser.elements(css: "iframe[width='160']") iframes.first.attribute_value('width') => 160