2

能够与 Watir 和 Firewatir 进行真正的跨浏览器兼容测试的障碍之一(据我所知从未消除,但也许我错了,这在不久前就解决了?)是 Watir 最初是设计的使用基于 One 的索引,而创建 firewatir 的人打破了这一点并使其基于零。

虽然我确信每个决定都有很好的历史原因,并且我不想争论哪个是正确的,但对于尝试创建在每个决定下运行的脚本而不做任何更改的测试人员来说,这是一种痛苦,因为至少这会影响通过 :index 识别元素,有时您别无选择,只能这样做。

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

另外,我们对最新的 Watir 和 Watir-Webdriver 之间的区别有什么参考吗?例如,在最近的一个问题中,.value= 没有实现为 .set 的“没有事件的直接集合”替代方案,并且基本上与 .set 的行为相同。

4

1 回答 1

4

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

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

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

然后在我们的脚本中:

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

然后,当我们完全离开 Watir 时,只需在整个代码库中查找 as_index 并将索引减一即可。

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

于 2011-07-01T16:54:40.110 回答