能够使用 Watir 和 Firewatir 进行真正的跨浏览器兼容测试的障碍之一(据我所知从未被消除,但也许我错了,这个问题不久前已经解决了?)是 Watir最初设计为使用基于一的索引,而创建 firewatir 的人打破了这一点,并使其成为基于零的索引。
虽然我确信每个决定都有很好的历史原因,并且我不想争论哪个是正确的,但对于测试人员来说,尝试创建在每个决定下运行而无需任何更改的脚本从一开始就是一种痛苦。至少这会影响通过 :index 识别元素,有时您别无选择,只能这样做。
我想知道转向 Watir-Webdriver 是否可以创建一个更统一的平台?
我们还可以引用最新的 Watir 和 Watir-Webdriver 之间的差异吗?例如,在最近的一个问题中,发现 .value= 并未实现为 .set 的“无事件直接设置”替代方案,并且基本上与 .set 的行为相同。
最佳答案
此问题的最佳解决方案是让 Watir 1.X 获得可配置的索引。我相信大部分工作已经在 Bret 的 zero-index 上完成。分支,所以问题只是有人把它捡起来并把它放在那里。
当我们迁移到 watir-webdriver 时,我们添加了这个猴子补丁来帮助解决这个问题:
class Fixnum
def as_index
Config.webdriver? ? self - 1 : self
end
end
然后在我们的脚本中:
browser.div(:index => 1.as_index)
然后,当我们完全脱离 Watir 时,只需在整个代码库中 grep 查找 as_index 并将索引减一即可。
我尝试在 this wiki page 上记录 Watir 和 watir-webdriver 之间的主要区别。我确信它有所欠缺,如果有人想改进它,那当然非常受欢迎:)
关于watir - Watir-webdriver 是否解决了 Watir 和 Firewatir 之间索引基数的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6550179/