关于XXXDriver区别、关于XXXElement区别
1 关于XXXDriver区别
在自动化测试脚本开发过程中,首先要初始化驱动程序类,有这4种驱动程序类,分别是:RemoteWebDriver、AppiumDriver、AndroidDriver、IOSDriver,那么它们有什么区别,应该选用哪种呢?
RemoteWebDriver:该驱动程序类直接来自Selenium项目。这是一个非常通用的驱动程序,初始化驱动程序意味着向Selenium集线器发出网络请求以启动驱动程序会话。由于Appium在客户端-服务器模型上运行,Appium使用它来初始化驱动程序会话。但是,不建议直接使用RemoteWebDriver,因为有其他可用的驱动程序来提供更多的附加功能。
AppiumDriver:该驱动程序类继承自RemoteWebDriver类,并在原有基础上增加了一些附加功能,这些功能在通过Appium服务器进行的移动自动化测试环境中非常有用。
AndroidDriver:此驱动程序类继承自AppiumDriver,并在原有基础上增加了一些附加功能,这些功能在通过Appium进行的Android设备移动自动化测试环境中非常有用。如果想在Android设备或Android模拟器上进行测试,建议使用此驱动程序类。
IOSDriver:该驱动程序类继承自AppiumDriver,并在原有基础上增加了一些附加功能,这些功能在通过Appium进行的IOS设备移动自动化测试环境中非常有用。如果想在IOS设备或IOS模拟器上开始测试,建议使用此驱动程序类。
正如你所看到的,建议使用基于设备操作系统的特定驱动程序,例如:用于Apple的IOSDriver和用于Android的AndroidDriver,以便自动化测试顺利执行。
2 关于XXXElement区别
在自动化测试脚本开发过程中,除了选择初始化驱动程序类,还有选择使用哪种元素类。
有5种元素,分别是:WebElement、RemoteWebElement、MobileElement、AndroidElement、 IOSElement,那么它们有什么区别,应该选用哪种呢?
WebElement是所有其他类(RemoteWebElement,MobileElement,AndroidElement,IOSElement)实现的通用接口。这意味着如果你有一个WebElement类型的对象,它将具有Web元素可以具有的所有基本功能,让你使用所有Selenium命令。如果你需要更多特定的功能,你可以使用其他对象,如:RemoteWebElement,MobileElement,AndroidElement,IOSElement。
MobileElement是Appium的元素,它继承了WebElement并添加了特定于Appium的功能(如:能够执行触摸手势等)。
AndroidElement和IOSElement实现MobileElement并添加特定于操作系统的功能。就像在Android上可以使用findByUIAutomator,在IOS上可以使用findByUIAutomation。
另请注意,WebElement和RemoteWebElement与Selenium捆绑在一起,而MobileElement,AndroidElement和IOSElement则专用于Appium。