Qxf2 has open sourced a Python-based automation testing framework

We have open-sourced our test automation framework. You can now write Selenium and Appium tests in Python using the Page Object pattern. Our Pythonic web, mobile and REST API test automation framework will help you get started with QA automation quickly. It comes with many useful integrations like – email, Slack, TestRail, BrowserStack, Sauce Labs, etc. You can find it […]

Android and Appium: Press Enter on the soft keyboard

Problem: Use Appium and press ‘Enter’ on the soft keyboard. This post continues our series on intermediate level problems when automating mobile application tests using Appium. We thought of sending a KeyEvent to an input (textbox) element using Appium. Superficially this appears to be trivial, but while writing the script, figured out otherwise. To our surprise, it failed. And there […]

Python Appium tests on different Android versions

Problem: UI element identifiers are not consistent across mobile platforms. Mobile is eating the world. However mobile operating systems are not yet fully mature. For example, UI element identifiers change between versions of the same OS. They also look different across Android and iOS. This causes automation scripts to be brittle. We hit this problem recently. We were writing automation […]

What is NAF ?

UIAutomatorViewer is a tool to inspect and identify UI elements in Android apps. However not every UI element you see is accessible to UIAutomatorViewer. Sigh. I know. That sucks. But at the very least, UIAutomatorViewer lets you know which of these elements are not accessible. I was messing around with Appium and DroidFish secretly hoping to write an automated test […]

appWaitActivity: A new session could not be created

While exploring Appium with mobile devices I hit the following error WebDriverException: Message: u’A new session could not be created. (Original error: atpwta.live/.activity.Main never started. Current: atpwta.live/.activity.root.TournamentList)’ Initially, I had set desired capabilities to: desired_caps[’platformName’] = ‘Android’ desired_caps[’platformVersion’] = ‘4.4’ desired_caps[’deviceName’] = ‘Moto E’ desired_caps[’appPackage’] = ‘atpwta.live’ desired_caps[’appActivity’] = ‘.activity.Main’desired_caps[‘platformName’] = ‘Android’ desired_caps[‘platformVersion’] = ‘4.4’ desired_caps[‘deviceName’] = ‘Moto E’ desired_caps[‘appPackage’] […]