AppiumDriver <mobileelement>和AndroidDriver之间的区别

时间:2016-02-09 07:23:41

标签: android testing automation appium

我正在使用Appium(java)自动化Android应用程序。
我在很多地方进行了搜索,但无法找到下面提到的两个驱动程序之间的确切差异。

AppiumDriver<MobileElement> driver
AndroidDriver driver

它们之间的区别是什么?使用何时以及为何使用?
任何解释/链接/示例都会有所帮助

2 个答案:

答案 0 :(得分:3)

Appium和AndroidDriver / iPhoneDriver之间的主要区别在于架构。

AndroidDriver / iPhoneDriver以相同的基本方式工作 - 它们是您在手机上启动的应用程序,用于创建可以使用selenium远程控制的Web视图。这种方法的局限性是:

Appium的工作方式是包装第一方自动化框架(适用于iPhone的UIAutomator和适用于Android的UI Automation / Instrumentation)。

  • 您可以使用浏览器的所有功能来驱动实际的浏览器。
  • 操作系统控制 - 您可以更改操作系统设置,清除数据和睡眠应用程序,以及操作系统公开的用于测试的任何挂钩
  • 除了网络测试之外,您还可以自动化本机代码。

答案 1 :(得分:1)

来自io.appium.java_client.android

的定义
public class AndroidDriver<RequiredElementType extends WebElement> 
    extends AppiumDriver<RequiredElementType> implements AndroidDeviceActionShortcuts,
    HasNetworkConnection,PushesFiles, StartsActivity, FindsByAndroidUIAutomator<RequiredElementType> {

AppiumDriver是Android驱动程序的超级驱动程序。所以现在您应该知道,如果您使用的是超级驱动程序,那么您拥有的是什么,如果您使用的是派生驱动程序,那么将会使用它们。

注意:AndroidDriverIOSDriver是针对不同平台派生的,以实现其特定功能,从另一个平台中抽象出来。

虽然这不应该一概而论,但我个人建议使用AppiumDriver以防怀疑使用哪些以及如何访问应用程序中的元素。