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的宽度外)
答案 0 :(得分:2)
这看起来像IFrameCollection#to_a
IFrameCollection#elements
正在收集iframe的正确子集,但会在页面上找到的整个iframe列表中使用该子集的索引号。这个周末我会花一些时间。当我提出拉取请求时,我会将其链接到这里。
与此同时,这个“有效”,但并不理想,因为它为您提供了一个元素,而不是IFrame:
iframes = browser.elements(css: "iframe[width='160']")
iframes.first.attribute_value('width') => 160