Watir-webdriver是否解决了Watir和Firewatir之间索引基础的差异?

时间:2011-07-01 15:47:55

标签: watir firewatir watir-webdriver

其中一个障碍(据我所知,从未被删除过,但也许我错了,这个问题在前一段时间得到了解决?)能够与Watir和Firewatir进行真正的跨浏览器兼容测试就是Watir最初设计使用一个基于索引,而创建firewatir的人打破了它并使其基于零。

虽然我确信每个决定都有很好的历史原因,而且我不想辩论哪个是正确的,但对于试图创建脚本的测试人员来说,这是一个痛苦,因为在这个脚本之下没有任何改动。至少这会影响通过以下方式识别元素:index,这有时是你别无选择的事情。

我想知道转移到Watir-Webdriver是否可以创建更统一的平台?

我们是否也参考了最新的Watir和Watir-Webdriver之间的差异?例如,在最近的一个问题中,它出现了.value =没有被实现为.set的“没有事件的直接集合”,并且基本上与.set一样。

1 个答案:

答案 0 :(得分:4)

这个问题的最佳解决方案是Watir 1.X获得可配置的索引。我相信大部分工作已经在布雷特的zero-index分支上完成,所以这只是一个问题,有人选择了这个并把它拿出来。

当我们迁移到watir-webdriver时,我们添加了这个猴子补丁来帮助解决这个问题:

class Fixnum
  def as_index
    Config.webdriver? ? self - 1 : self
  end
end

然后在我们的脚本中:

browser.div(:index => 1.as_index)

然后,当我们完全离开Watir时,在整个代码库中为as_index进行grepping并将索引减1会是一件简单的事。

我试图在this wiki page上记录Watir和watir-webdriver之间的主要区别。我确信它缺乏,如果有人想改进它,那当然非常受欢迎:)