抽象类AppiumDriver 继承自Selenium Java Client.AppiumDriver 包含了所有 iOS及Android共享的方法.IOSDriver及AndroidDriver都继承自AppiumDriver ,并且提供了更多的方法以及一些方法的实现。
增加的功能
- startActivity()
- resetApp()
- getAppString()
- sendKeyEvent()
- currentActivity()
- pullFile()
- pushFile()
- pullFolder()
- hideKeyboard()
- runAppInBackground()
- performTouchAction()
- performMultiTouchAction()
- tap()
- swipe()
- pinch()
- zoom()
- getNamedTextField()
- isAppInstalled()
- installApp()
- removeApp()
- launchApp()
- closeApp()
- endTestCoverage()
- lockScreen()
- isLocked()
- shake()
- complexFind()
- scrollTo()
- scrollToExact()
- openNotifications()
- Context Switching: .context(), .getContextHandles(), getContext())
- getNetworkConnection(), setNetworkConnection()
- ignoreUnimportantViews(), getSettings()
- toggleLocationServices()
Locators:
- findElementByAccessibilityId()
- findElementsByAccessibilityId()
- findElementByIosUIAutomation()
- findElementsByIosUIAutomation()
- findElementByAndroidUIAutomator()
- findElementsByAndroidUIAutomator()
演进历史
2.1.0
- Moved hasAppString() from AndroidDriver to AppiumDriver
- Fixes to PageFactory
- Added @AndroidFindAll and @iOSFindAll
- Added toggleLocationServices() to AndroidDriver
- Added touchAction methods to MobileElement, so now you can do
element.pinch()
,element.zoom()
, etc. - Added the ability to choose a direction to swipe over an element. Use the
SwipeElementDirection
enums:UP, DOWN, LEFT, RIGHT
2.0.0
- AppiumDriver is now an abstract class, use IOSDriver and AndroidDriver which both extend it. You no longer need to include the
PLATFORM_NAME
desired capability since it's automatic for each class. Thanks to @TikhomirovSergey for all their work - ScrollTo() and ScrollToExact() methods reimplemented
- Zoom() and Pinch() are now a little smarter and less likely to fail if you element is near the edge of the screen. Congratulate @BJap on their first PR!
1.7.0
- Removed
scrollTo()
andscrollToExact()
methods because they relied oncomplexFind()
. They will be added back in the next version! - Removed
complexFind()
- Added
startActivity()
method - Added
isLocked()
method - Added
getSettings()
andignoreUnimportantViews()
methods
1.6.2
- Added MobilePlatform interface (Android, IOS, FirefoxOS)
- Added MobileBrowserType interface (Safari, Browser, Chromium, Chrome)
- Added MobileCapabilityType.APP_WAIT_ACTIVITY
- Fixed small Integer cast issue (in Eclipse it won't compile)
- Set -source and -target of the Java Compiler to 1.7 (for maven compiler plugin)
- Fixed bug in Page Factory
1.6.1
- Fixed the logic for checking connection status on NetworkConnectionSetting objects
1.6.0
- Added @findBy annotations. Explanation here: https://github.com/appium/java-client/pull/68 Thanks to TikhomirovSergey
- Appium Driver now implements LocationContext interface, so setLocation() works for setting GPS coordinates
1.5.0
- Added MobileCapabilityType enums for desired capabilities
findElement
andfindElements
return MobileElement objects (still need to be casted, but no longer instantiated)- new appium v1.2
hideKeyboard()
strategies added getNetworkConnection()
andsetNetworkConnection()
commands added
1.4.0
- Added openNotifications() method, to open the notifications shade on Android
- Added pullFolder() method, to pull an entire folder as a zip archive from a device/simulator
- Upgraded Selenium dependency to 2.42.2
1.3.0
- MultiGesture with a single TouchAction fixed for Android
- Now depends upon Selenium java client 2.42.1
- Cleanup of Errorcode handling, due to merging a change into Selenium
1.2.1
- fix dependency issue
1.2.0
- complexFind() now returns MobileElement objects
- added scrollTo() and scrollToExact() methods for use with complexFind()
1.1.0
- AppiumDriver now implements Rotatable. rotate() and getOrientation() methods added
- when no appium server is running, the proper error is thrown, instead of a NullPointerException
1.0.2
- recompiled to include some missing methods such as shake() and complexFind()