appium-uiautomator2-driver 3.5.2 → 3.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [3.5.3](https://github.com/appium/appium-uiautomator2-driver/compare/v3.5.2...v3.5.3) (2024-06-10)
2
+
3
+ ### Miscellaneous Chores
4
+
5
+ * use latest io.appium.settings ([#789](https://github.com/appium/appium-uiautomator2-driver/issues/789)) ([13104ba](https://github.com/appium/appium-uiautomator2-driver/commit/13104ba69d55def1540c782425e62bac9050f8fa))
6
+
1
7
  ## [3.5.2](https://github.com/appium/appium-uiautomator2-driver/compare/v3.5.1...v3.5.2) (2024-05-21)
2
8
 
3
9
 
package/README.md CHANGED
@@ -58,7 +58,7 @@ appium:skipServerInstallation | Skip the UiAutomator2 Server component installat
58
58
  appium:uiautomator2ServerLaunchTimeout | The maximum number of milliseconds to wait util UiAutomator2Server is listening on the device. `30000` ms by default
59
59
  appium:uiautomator2ServerInstallTimeout | The maximum number of milliseconds to wait util UiAutomator2Server is installed on the device. `20000` ms by default
60
60
  appium:uiautomator2ServerReadTimeout | The maximum number of milliseconds to wait for a HTTP response from UiAutomator2Server. Only values greater than zero are accepted. If the given value is too low then expect driver commands to fail with `timeout of Xms exceeded` error. `240000` ms by default
61
- appium:disableWindowAnimation | Whether to disable window animations when starting the instrumentation process. `false` by default
61
+ appium:disableWindowAnimation | Whether to disable window animations when starting the instrumentation process. The animation scale will be restored automatically after the instrumentation process ends for API level 26 and higher. The animation scale could remain if the session ends unexpectedly for API level 25 and lower. `false` by default
62
62
  appium:skipDeviceInitialization | If set to `true` then device startup checks (whether it is ready and whether Settings app is installed) will be canceled on session creation. Could speed up the session creation if you know what you are doing. `false` by default
63
63
 
64
64
  ### App
@@ -108,7 +108,7 @@ appium:clearDeviceLogsOnStart | If set to `true` then UiAutomator2 deletes all t
108
108
  appium:buildToolsVersion | The version of Android build tools to use. By default UiAutomator2 driver uses the most recent version of build tools installed on the machine, but sometimes it might be necessary to give it a hint (let say if there is a known bug in the most recent tools version). Example: `28.0.3`
109
109
  appium:skipLogcatCapture | Being set to `true` disables automatic logcat output collection during the test run. `false` by default
110
110
  appium:suppressKillServer | Being set to `true` prevents the driver from ever killing the ADB server explicitly. Could be useful if ADB is connected wirelessly. `false` by default
111
- appium:ignoreHiddenApiPolicyError | Being set to `true` ignores a failure while changing hidden API access policies. Could be useful on some devices, where access to these policies has been locked by its vendor. `false` by default.
111
+ appium:ignoreHiddenApiPolicyError | Being set to `true` ignores a failure while changing hidden API access policies to [enable access to non-SDK interfaces](https://developer.android.com/guide/app-compatibility/restrictions-non-sdk-interfaces#how_can_i_enable_access_to_non-sdk_interfaces). Could be useful on some devices, where access to these policies has been locked by its vendor. `false` by default.
112
112
  appium:hideKeyboard | Being set to `true` hides the on-screen keyboard while the session is running. Use it instead of the legacy `appium:unicodeKeyboard` one (which will be dropped in the future). This effect is achieved by assigning a custom "artificial" [input method](https://developer.android.com/develop/ui/views/touch-and-input/creating-input-method). Only use this feature for special/exploratory cases as it violates the way your application under test is normally interacted with by a human. Setting this capability explicitly to `false` enforces `adb shell ime reset` call on session startup, which resets the currently selected/enabled IMEs to the default ones as if the device is initially booted with the current locale. `undefined` by default.
113
113
  appium:mockLocationApp | Sets the package identifier of the app, which is used as a system mock location provider since Appium 1.18.0+. This capability has no effect on emulators. If the value is set to `null` or an empty string, then Appium will skip the mocked location provider setup procedure. Defaults to Appium Setting package identifier (`io.appium.settings`). Termination of a mock location provider application resets the mocked location data.
114
114
  appium:logcatFormat | The log print format, where `format` is one of: `brief` `process` `tag` `thread` `raw` `time` `threadtime` `long`. `threadtime` is the default value.
@@ -1785,6 +1785,26 @@ The general resources naming convention for Android apps is `<app_id>:id/<resour
1785
1785
 
1786
1786
  This exception happens due to a known bug in the [Eclipse's Psychopath](https://wiki.eclipse.org/PsychoPathXPathProcessor) library used by UiAutomator2 driver to support [XPath2](https://www.w3.org/TR/xpath20/) syntax. The issue has been observed while using `following::` or `preceding::` axes in xpath queries. Unfortunately, this library has not been maintained for quite a while, and there is no good open source alternative to it. The only known workaround would be to forcefully switch the driver's XPath processor to the standard Android's Apache Harmony-based XPath1, which does not have this issue (but also does not support XPath2 syntax). See the Appium issue [#16142](https://github.com/appium/appium/issues/16142#issuecomment-1003954166) for more details.
1787
1787
 
1788
+ ### window/tab hanlding in WEBVIEW context implemented by chrome custom tabs
1789
+
1790
+ [Chrome custom tabs](https://developer.chrome.com/docs/android/custom-tabs/) could have its own window handlings as same as regular Selenium Web automation.
1791
+
1792
+ Appium lets you switch the context from `NATIVE_APP` to `WEBVIEW_xyz`, for example, to interact with the WEBVIEW contents over chromedriver. Then, if the WEBVIEW was chrome custom tabs implementation, the WEBVIEW context may require you to switch the window handler properly to interact with contents in a handler.
1793
+ It is worth to try out this idea if `chrome://inspect` or [mobile: getContexts](#mobile-getcontexts) shows you available pages more than availale contexts.
1794
+
1795
+ ```ruby
1796
+ # Ruby
1797
+ # Change the context to WebView (Attach to a chromedriver session)
1798
+ driver.set_context('WEBVIEW_XYZ')
1799
+
1800
+ # Get available tabs/windows in the chrome instance
1801
+ driver.window_handles
1802
+
1803
+ # Change the tab/window in the "chrome" instance
1804
+ driver.switch_to.window('a window_handle name')
1805
+
1806
+ # interact with the tab/window
1807
+ ```
1788
1808
 
1789
1809
  ## Usage Examples
1790
1810