Appium is getting a feature to test Android Jetpack Compose over compose context. https://github.com/appium/appium-espresso-driver#jetpack-compose-support is the place to see how the current Appium Espresso driver works with the compose over the compose context. Appium UIA2 driver has a different architecture to work with it, so the compose support can work over the espresso driver. The…More
Tag Archives: android
[Appium][Android] Change window/tab in a chrome custom tab
A chrome custom tab is a chrome browser instance on an Android device. Appium tries to get available contexts by checking browser/webview processes on the device/application. It means even when the chrome custom tab has multiple tabs/windows, Appium probably can find a chrome instance (process) and attach to it. To switch to another tab on…More
[Appium][Flutter] Handling WebView contexts in flutter-appium-driver
I’ve recently added WebView feature in the appium-flutter-driver Webview still work in progress? #45. The v0.0.32 should have it. debuggingEnabled is necessary t enable WebView availability in Flutter. Then, appium UIA2/XCUITest, which runs to handle the application under test as part of appium-flutter-driver, can find its WebView context. So, you can do like the below code…More
[Appium][Android] Chrome Custom Tab
A note about chrome custom tab when I tested in appium#13543 Demo apps in https://github.com/GoogleChrome/android-browser-helper helped me to check basic chrome custom tabs availability via Appium. Some apps may have custom chrome tabs. Then, I assume it requires setting chrome options properly. My test environment had Appium 1.21.0 or newer, so possibly older ones had…More
[Android][Compose][Appium] More accessibility-friendly
I toyed compose with Appium like the below before to investigate the availability of compose in Appium. [Android][Compose][Appium] Take a look at AndroidComposeTestRule See https://github.com/appium/appium/issues/15138 as well. In early April, I was not able to compose materials in the below image area, but today I was able to. For example, “send” button was not accessible,…More
[Appium][Android] Compose Layout
About https://github.com/appium/appium/issues/15138 I toyed compose layout with JetChat in https://github.com/android/compose-samples with Appium. Below XMLs are the result. When we add contentDescription in each element, Appium can access them. But I understand the contentDescription is for accessibility feature. We should not use it only for automation as possible. I wondered resource-id and tag. But so far,…More
[Android][Compose][Appium] Take a look at AndroidComposeTestRule
Composer has ComposeTestRule and AndroidComposeTestRule to test Composer. https://developer.android.com/jetpack/compose/testing As Appium, we’d like to inject them to interact with composer components reliably. So, I took a look at their code a bit to understand the codebase. According to https://developer.android.com/jetpack/compose/testing#espresso-interop this section, the composer rule can use with Espresso. Thus, I guessed Appium-Espresso driver also could…More
[Android] Get a launcher activity name
Not a new tip, but this is helpful to get a package name and the launcher activity name.More
[Appium] waitForIdleTimeout and waitForSelectorTimeout
Appium has waitForIdleTimeout and waitForSelectorTimeout in https://github.com/appium/appium-uiautomator2-driver#settings-api which can configure via SettingsAPI. It changes these timeout configurations in the UIAutomator. It could help to make interaction speed fast. Not new, but I found a good page to explain it in Kaspresso‘s repository. Thus, I’d like to leave it here. Appium capabilities example:More
[Appium] Send CDP commands to chrome over Appium
I’ve added a route to send CDP command to Chromedriver. CDP stands for Chrome Devtools Protocol. It provides commands to handle a browser via the protocol. Some commands can be alternatives to WebDriver spec, but they have their own more useful commands. It is available over WebSocket. You can find CDP clients in the internet,…More