Book Image

Mobile Test Automation with Appium

By : Nishant Verma
Book Image

Mobile Test Automation with Appium

By: Nishant Verma

Overview of this book

Appium is an open source test automation framework for mobile applications. It allows you to test all three types of mobile applications: native, hybrid, and mobile web. It allows you to run the automated tests on actual devices, emulators, and simulators. Today, when every mobile app is made on at least two platforms, iOS and Android, you need a tool that allows you to test across platforms. Having two different frameworks for the same app increases the cost of the product and time to maintain it as well. Appium helps save this cost. With mobile app growth exploding, mobile app automation is mainstream now. In this book, author Nishant Verma provides you with a firm grounding in the concepts of Appium while diving into how to set up appium & Cucumber-jvm test automation framework, implement page object design pattern, automate gestures, test execution on emulators and physical devices, and implement continuous integration with Jenkins. The mobile app we have referenced in this book is Quikr because of its relatively lower learning curve to understand the application. It's a local classifieds shopping app.
Table of Contents (20 chapters)
Title Page
Credits
About the Author
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface
5
Understanding Appium Inspector to Find Locators
7
How to Automate Gestures
9
How to Run Appium Test on Devices and Emulators

Implicit wait


Implicit wait is a way to tell the Appium driver to poll the DOM (Document Object Model) for a certain amount of time before throwing an exception to the effect that it can't find the element on the page. The default timeout value is set to 0 seconds. Once we set the implicit wait to a specified time, it persists for the life of the webdriver object instance. How to set an implicit wait is explained here:

appiumDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

So, what this implies is letting the driver instance wait for a maximum of 10 seconds before throwing the NoSuchElement exception. We need to be watchful about the implicit usage. The Appium boilerplate generally gives us the code with the implicit wait implementation, so note the preceding line in the HomePageWebSteps class file, as shown:

appiumDriver = new AppiumDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
appiumDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

Increasing the...