的Watir-webdriver的框架属性不与其他来源Congurent(Watir-Webdriv

2019-10-29 20:54发布

我有一个问题:如果我回到一个帧的某些属性不匹配那些在Firebug例如。 其原因是,我正在寻找一种方法来识别帧的目的。 例如在www.cnet.com它们负载19帧中总的和其中的一些是HTML用JavaScript。 我要检查一些帧,但不是全部。

用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

然而这是Firebug的输出了该网页www.cnet.com的childNodes /儿童:

如果我指的萤火列表中的第一项具有以下属性:

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

顺便说一句,我使用的水,用的webdriver在Linux下的Firefox无头。

任何帮助表示赞赏。

Answer 1:

答案是你不问为Firefox是您展示相同的属性。

以这是在你的列表的顶部,如果你想的Watir返回“gigya_ruler”那么你要问div的ID属性,不是名称的DIV的情况。

这同样适用于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'


文章来源: Watir-Webdriver Frame Attributes Not Congurent with Other Sources