简而言之:我们准备淘汰 Selenium 自己的 AndroidDriver 和 iPhoneDriver,改用 Selendroid,iosdriver 和 Appium中的任意一个。如果你正在使用 Selenium 的 mobile driver 中的一个的话,请评价下这些替代品。
正文:
在 2007 年, 乔布斯发布了 iPhone,从此移动web从本来的新奇事物走上了主流,成为大众的宠儿。如今的趋势预示着在不远的将来,移动 web 的使用将超过桌面应用的使用。移动 Web 将成为你站点重要一部分,而且在移动设备上测试你的网站将是一个明智的想法。而这在未来将会持续一段时间。
Selenium 项目通过实现 iOS 和 Android 版本的 webdriver 来回应崛起的移动 web。在2009年初期,我们加入了 iPhoneDriver (在 iPad 上也能工作)。2010年6月,最初由 Google 工程师开发的 AndroidDriver 也加入了阵营。 直到今天,你能在官方 Android SDK 的下载选项中发现 “Google WebDriver”的身影。
在最初的工作完成之后,一些有趣的事情发生了。在 Selenium 项目之外,坊间对这些移动 driver 做了很多实验性的扩展和修改。第一个就是“nativedriver”,我也参与于此。它采用了一个新奇的方式,使用熟悉的 WebDriver 接口,允许用户和手机(Android 或者 iOS)原生的 UI 交互。我第一次见到它时,惊呆了。但是开发它的工程师很快就向我证明了这是有意义的。你猜怎样,他们是对的。
可惜的是,在证明这个主意是可行且能工作后,NativeDriver 项目突然失去了动力。但是,它给其他三个项目做好了准备,这三个项目采用了它的理念,创造了非常棒的移动测试软件,他们就是: Selendroid, iosdriver 和 Appium。这三个项目都允许用户用熟知的 WebDriver 接口来测试iOS 和 Android 上的应用。不仅仅是原生的应用,也包括混合或者纯web的应用。最近 Windows Phone WebDriver 也加入了他们,我们可以用来测试 WinPhone 8 上的移动 web 应用。
这些项目都有一个共同点:他们比 Selenium 移动主项目更加地活跃,更能胜任移动测试工作,也已经走的更远。事实上,原先在 AndroidDriver 和 iPhoneDriver 上的贡献者也开始在这些项目上工作了。我们需要维护不同 driver 间的互通性,允许用户选择最适合他们的框架,而不必担心他们的测试会需要大量重构。
这就意味着在 selenium 项目中继续保留 AndroidDriver 和 iPhoneDriver 已经不能帮助用户了。那些替代者才是更好的选择。保留这些所谓官方的 driver 只会污染了项目。而且更糟糕的是,selenium 的开发修复这些 driver 上的 bug 非常慢,而这些 bug 让每个参与与此的人都非常沮丧。鉴于此,Selenium 项目决定删除这些driver的代码。我们推荐大家评估那些备选的其中之一使用。
当然,这些代码会仍然保留在我们的代码历史中,所以如果你想自己构建一个的话,还是有可能的。最新的 iPhoneDriver 是 ef9d578,最新的 AndroidDriver 代码是 00a3c7d。我们已经上传了最新版本的 AndroidDriver 供你下载。
这些改变并不意味着我们不再支持移动测试。它意味着我们只支持最好的 mobile WebDriver 实现,只是他们不是 Selenium 项目的一部分而已。