Releases: appium/java-client
4.1.1
[maven-release-plugin] copy for tag 4.1.1
4.1.0
- all code marked
@Deprecated
was removed. getSessionDetails()
was added. Thanks to @saikrishna321 for the contribution.- FIX #362, #220, #323. Details read there: #413
- FIX #392. Thanks to @truebit for the bug report.
- The dependency on
cglib
was replaced by the dependency oncglib-nodep
. FIX #418 - The casting to the weaker interface
HasIdentity
instead of classRemoteWebElement
was added. It is the internal refactoring of theTouchAction
. #432. Thanks to @asolntsev for the contribution. - The
setValue
method was moved toMobileElement
. It works against text input elements on Android. - The dependency on
org.springframework
spring-context
v4.3.2.RELEASE
was added - The dependency on
org.aspectj
aspectjweaver
v1.8.9
was added - ENHANCEMENT: The alternative event firing engine. The feature request: #242.
Implementation: #437. Also new WIKI chapter was added. - ENHANCEMENT: Convenient access to specific commands for each supported mobile OS. Details: #445
- dependencies and plugins were updated
- ENHANCEMENT:
YouiEngineDriver
was added. Details: appium server #6215, #429, #448. It is just the draft of the new solution that is going to be extended further. Please stay tuned. There are many interesting things are coming up. Thanks toYou I Engine
team for the contribution.
4.0.0
- all code marked
@Deprecated
was removed. Java client won't support old servers (v<1.5.0)
anymore. - the ability to start an activity using Android intent actions, intent categories, flags and arguments
was added toAndroidDriver
. Thanks to @saikrishna321 for the contribution. scrollTo()
andscrollToExact()
became deprecated. They are going to be removed in the next release.- The interface
io.appium.java_client.ios.GetsNamedTextField
and the declared methodT getNamedTextField(String name)
are
deprecated as well. They are going to be removed in the next release. - Methods
findElements(String by, String using)
andfindElement(String by, String using)
oforg.openga.selenium.remote.RemoteWebdriver
are public now. Thanks to @SrinivasanTarget. - the
io.appium.java_client.NetworkConnectionSetting
class was marked deprecated - the enum
io.appium.java_client.android.Connection
was added. All supported network bitmasks are defined there. - Android. Old methods which get/set connection were marked
@Deprecated
- Android. New methods which consume/return
io.appium.java_client.android.Connection
were added. - the
commandRepository
field is public now. The modification of theMobileCommand
- Constructors like
AppiumDriver(HttpCommandExecutor executor, Capabilities capabilities)
were added to
io.appium.java_client.android.AndroidDriver
andio.appium.java_client.ios.IOSDriver
- The refactoring of
io.appium.java_client.internal.JsonToMobileElementConverter
. Now it accepts
org.openqa.selenium.remote.RemoteWebDriver
as the constructor parameter. It is possible to re-use
io.appium.java_client.android.internal.JsonToAndroidElementConverter
or
io.appium.java_client.ios.internal.JsonToIOSElementConverter
by RemoteWebDriver when it is needed. - Constructors of the abstract
io.appium.java_client.AppiumDriver
were redesigned. Now they require
a subclass ofio.appium.java_client.internal.JsonToMobileElementConverter
. Constructors of
io.appium.java_client.android.AndroidDriver
andio.appium.java_client.ios.IOSDriver
are same still. - The
pushFile(String remotePath, File file)
was added to AndroidDriver - FIX of TouchAction. Instances of the TouchAction class are reusable now
- FIX of the swiping issue (iOS, server version >= 1.5.0). Now the swiping is implemented differently by
AndroidDriver and IOSDriver. Thanks to @truebit and @nuggit32 for the catching. - the project was integrated with maven-checkstyle-plugin. Thanks to @SrinivasanTarget for the work
- source code was improved according to code style checking rules.
- the integration with
org.owasp dependency-check-maven
was added. Thanks to @saikrishna321
for the work. - the integration with
org.jacoco jacoco-maven-plugin
was added. Thanks to @SrinivasanTarget for the contribution.
3.4.1
- Update to Selenium v2.53.0
- all dependencies were updated to latest versions
- the dependency on org.apache.commons commons-lang3 v3.4 was added
- the fix of Widget method invocation.#340. A class visibility was taken into account. Thanks to aznime for the catching.
Server flags were added:- GeneralServerFlag.ASYNC_TRACE
- IOSServerFlag.WEBKIT_DEBUG_PROXY_PORT
- Source code was formatted using eclipse-java-google-style.xml. This is not the complete solution. The code style checking is going to be added further. Thanks to SrinivasanTarget for the work!
3.4.0
- Update to Selenium v2.52.0
getAppStrings()
methods are deprecated now. They are going to be removed.getAppStringMap()
methods were added and now return a map with app strings (keys and values)
instead of a string. Thanks to @rgonalo for the contribution.- Add
getAppStringMap(String language, String stringFile)
method to allow searching app strings in the specified file - FIXED of the bug which causes deadlocks of AppiumDriver LocalService in multithreading. Thanks to saikrishna321 for the bug report.
- FIXED Zoom methods, thanks to @kkhaidukov
- FIXED The issue of compatibility of AppiumServiceBuilder with Appium node server v >= 1.5.x. Take a look at #305
getDeviceTime()
was added. Thanks to @SrinivasanTarget for the contribution.- FIXED
longPressKeyCode()
methods. Now they use the convenient JSONWP command.Thanks to @kirillbilchenko for the proposed fix. - FIXED javadoc.
- Page object tools were updated. Details read here: #311, #313, #317. By.name locator strategy is deprecated for Android and iOS. It is still valid for the Selendroid mode. Thanks to @SrinivasanTarget for the helping.
- The method
lockScreen(seconds)
is deprecated and it is going to be removed in the next release. Since Appium node server v1.5.x it is recommended to use
AndroidDriver.lockDevice()...AndroidDriver.unlockDevice()
orIOSDriver.lockDevice(int seconds)
instead. Thanks to @namannigam for
the catching. Read #315 maven-release-plugin
was added to POM.XML configuration- #320 fix. The
Widget.getSelfReference()
was added. This method allows to extract a real widget-object from inside a proxy at some extraordinary situations. Read: PR. Thanks to SergeyErmakovMercDev for the reporting. - all capabilities were added according to this description. There are three classes:
io.appium.java_client.remote.MobileCapabilityType
(just modified),io.appium.java_client.remote.AndroidMobileCapabilityType
(android-specific capabilities),io.appium.java_client.remote.IOSMobileCapabilityType
(iOS-specific capabilities). Details are here: #326 - some server flags were marked
deprecated
because they are deprecated since server node v1.5.x. These flags are going to be removed at the java client release. Details are here: #326 - The ability to start Appium node programmatically using desired capabilities. This feature is compatible with Appium node server v >= 1.5.x. Details are here: #326
v3.3.0
3.3.0
updated the dependency on Selenium to version 2.48.2
bug fix and enhancements of io.appium.java_client.service.local.AppiumDriverLocalService
FIXED bug which was found and reproduced with Eclipse for Mac OS X. Please read about details here: #252 Thanks to saikrishna321 for the bug report
FIXED bug which was found out by Jonahss. Thanks for the reporting. Details: #272 and #273
For starting an appium server using localService, added additional environment variable to specify the location of Node.js binary: NODE_BINARY_PATH
The ability to set additional output streams was provided
The additional startActivity() method was added to AndroidDriver. It allows to start activities without the stopping of a target app Thanks to deadmoto for the contribution
The additional extension of the Page Object design pattern was designed. Please read about details here: #267
New public constructors to AndroidDriver/IOSDriver that allow passing a custom HttpClient.Factory Details: #276 thanks to baechul
v3.2.0
3.2.0
updated the dependency on Selenium to version 2.47.1
the new dependency on commons-validator v1.4.1
the ability to start programmatically/silently an Appium node server is provided now. Details please read at #240. Historical reference: The similar solution has been designed by @Hassan-Radi. The mentioned framework and the current solution use different approaches.
Throwing declarations were added to some searching methods. The "getMouse" method of RemoteWebDriver was marked Deprecated
Add replaceValue method for elements.
Replace sendKeyEvent() method in android with pressKey() and added longPressKey() method.
v3.1.0
3.1.1
- Page-object findBy strategies are now aware of which driver (iOS or Android) you are using. For more details see the Pull Request: #213
- If somebody desires to use their own Webdriver implementation then it has to implement HasCapabilities.
- Corrected an uninformative Exception message.
- Added a new annotation:
WithTimeout
. This annotation allows one to specify a specific timeout for finding an element which overrides the drivers default timeout. For more info see: #210
v3.0.0
3.0.0
- AppiumDriver class is now a Generic. This allows us to return elements of class MobileElement (and its subclasses) instead of always returning WebElements and requiring users to cast to MobileElement. See #182
- Full set of Android KeyEvents added.
- Selenium client version updated to 2.46
- PageObject enhancements
- Junit dependency removed
v2.2.0
2.2.0
Added new TouchAction methods for LongPress, on an element, at x,y coordinates, or at an offset from within an element
SwipeElementDirection changed. Read the documentation, it's now smarter about how/where to swipe
Added APPIUM_VERSION MobileCapabilityType
sendKeyEvent() moved from AppiumDriver to IOSDriver
linkText and partialLinkText locators added
setValue() moved from MobileElement to IOSElement
Fixed Selendroid PageAnnotations