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 回答