Skip to content

Most Popular Appium Interview Questions And Answers

Appium interview Questions

In this article, we will discuss Appium Interview Questions that are frequently asked by interviewers.

1)Explain the difference between mobile testing and mobile application testing.

Mobile testing or mobile device testing refers to the validation of its hardware and software functions. It includes the testing of device-specific features like storage, camera, screen, memory, etc. Mobile application testing refers to the testing of applications on different mobile devices to ensure consistency and functionality.

2)What are the tools available to test mobile applications?

Appium, TestComplete, XCUITest, Espresso, Calabash, etc.

3)Explain Why you choose Appium for mobile automation?

Appium is an open-source tool for automating native, mobile web, and hybrid applications on iOS mobile, Android mobile, and Windows desktop platforms. It provides cross-platform support. It also provides the ability to write test scripts in any of the supported languages like Java, c#, Ruby, Python, etc. It is easy to use as it uses the same JSON Wire Protocol as selenium and enables the user to automate gestures and screen orientations.

4)What are the basic requirements for writing Appium tests?

Prerequisites: Android SDK, JDK, IDE, Selenium server Jar, and Appium must be installed.

5)Can You use Appium on your machine if the node is not installed?

Appium is a node.js server hence to use Appium it is mandatory to install the node first in the machine.

6)How to find elements in Appium?

ID or resource-id, Text (Name), Xpath, ClassName, and accessibility.

7)Is the Appium tool Similar to Selenium?

Appium is used to automate mobile native apps like IOS or android and even mobile browsers however selenium is purely a web automation tool. Appium follows the same architecture as Selenium.

8)What are Appium Client and Appium Server?

We use client libraries like Java, Python, etc to write our scripts (instructions) which are sent to the Appium server using JSON Wire protocol. Then a unique session is created by the Appium server based on the provided desired capabilities and scripts start executing.

9)What is the need for desired capabilities?

Desired capabilities are a set of key-value pairs which is used to send the information regarding the automation session to the server by the client. They inform the Appium server about all the important things which are required for the test to work like the desired platform, device, app-related info, etc.

10)What type of drivers you have used for Appium Automation?

For Android, we have UI Automator, UIAutomator2, and Espresso driver and for IOS we can use UIAutomation or XCUITest driver.

11)How do you handle timeout scenarios in Appium?

1)We can use the implicit wait and set a specific amount of time to which the driver should wait while searching for elements.

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

2)Set Script Timeout: It works in web context only.

driver.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS)

3)Set PageLoad Timeout: Configure the amount of time that a particular type of operation can execute before they are aborted

driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);

4)Use Explicit Wait

12)How to perform Drag and Drop in Appium?

By Using TouchAction class. The touch-action class provides all the necessary methods to handle mobile gestures.

TouchAction action = new TouchAction(driver);
action.longPress(elem1).waitAction(3000).moveTo(elem2).perform().release();

13)How to automate Hybrid applications using Appium?

Hybrid apps are those apps that are part native apps(IOS-specific apps/Android-specific apps) and part web apps (Open on a mobile browser). These apps are deployed in a native shell that uses a mobile web view object because of which these are platform-independent. Automating such applications is quite tricky. To Automate hybrid apps we need to follow such steps:

  1. First, get the available contexts of the application['NATIVE_APP' or 'WEBVIEW_1'].
Set<String> contextNames = driver.getContextHandles();

2) Set The Desired context

driver.context(contextNames.toArray()[1]);
driver.context("WEBVIEW_1")

3) Perform the testing

String myText= driver.findElement(By.cssSelector(".green_button")).click();
driver.quit();

14)What is the difference between Appium Driver and Android Driver?

AppiumDriver is an abstract class that inherits from the selenium java client. This class is inherited by AndroidDriver and IOSDriver class to provide implementation and to provide additional functions that are useful in the context of a mobile automation test on Android devices/IOS devices.

15)How to start & stop the Appium server programmatically?

AppiumDriverLocalService: This class is used to start and stop the Appium server.
AppiumServiceBuilder: This class is used to build the Appium service, i.e. you can use this class to set the server address, port, desired capabilities, and other flags before starting the Appium server​.

AppiumDriverLocalService service = AppiumDriverLocalService.buildDefaultService();
service.start();
//your test scripts logic…
service.stop();

16)How to perform scroll action in mobile automation?

By Using TouchAction class we can perform actions like scrolling, single tap, Double Tap, Long Press, etc.

TouchActions action =TouchActions(driver);
action.scroll(xoffset,yoffset).perform();

17)Have you used UISelector in your Framework?

UISelector is a class that provides the mechanism for tests to describe the UI elements they intend to target. A UI element has many properties associated with it such as text value, content description, class name, and multiple state information like selected, enabled, checked, etc.​

Driver.findElementByAndroidUIAutomator(“UiSelector().resourceID(\“Element Id\”)”).Click();

If the normal findElement by command doesn’t work with different types of locators, then the UI Automator command can be used.

18)What are the common exception that occurred in the Appium framework?

1)WebDriverExceprion
2)ElementNotFoundException
3)SessionNotFoundException
4)NoSuchContextException
5)TimeOutException

19)How to perform parallel testing in Appium?

To perform parallel testing we need to configure 2 nodes with different ports. After that, we need to create 2 drivers with desired capabilities and launch the server on those 2 differently configured ports.

20)How can you verify SMS or Calls in Appium?

1)First specify some wait
2)Then use the send SMS() method

driver.sendSMS("555-123-4567", "Hey buddy");

For simulating calls use the makeGsmCall() method

driver.makeGsmCall(“1234567890”, GsmCallActions.CALL);

21)Is there any EventListener in Appium?

Yes, we can use the AppiumWebDriverEventListener interface.

22)How to Switch between android applications in Appium?

Yes, it is possible. We can start the new activity by providing the app package and app activity of another application.

driver.startActivity(new Activity{apppackage,appactivity});

23)How to check if the App is installed or not?

public boolean isAppInstalled(String bundleId) {
return androidDriver
.isAppInstalled(bundleId);
}

24)What is ADB in mobile testing?

ADB(Android debug bridge) lets us communicate with android devices or emulators. USB debugging needs to be enabled and the device needs to be connected to use the ADB shell.

25)How can you handle the keys in Appium?

use the press key() method.

driver.pressKey(keyEvent);

Suppose we want to simulate the device’s back button then use the below code:

driver.pressKey(new KeyEvent(AndroidKey.BACK));

This press key() method works only on Android devices.

26)What are the disadvantages of Appium automation?

1)Limited support for Hybrid apps.
2)Complex SetUp process.
3)Does not support Image comparison like selenium.
4)Comparatively slow performance.

27)How to do Orientation testing of mobile devices?

Can Use the capability deviceOrientation to change the screen orientation.

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("deviceOrientation", "landscape");

To get the current orientation can use the getOrientation method.

driver.getOrientation()

28)What is an Appium inspector?

Appium inspector is a GUI interface that is used to inspect and interact with mobile elements and provide a list of suggested element locator strategies and selectors to be used in your script.

29)How to perform a single tap using Appium?

Appium has a class named ‘touch action’. This class contains methods involving mouse events and user interactions. With the help of this class, we can perform single tap, double click, drag and drop, and other actions.

TouchActions action = new TouchActions(driver);
action.singleTap(element).perform();

30)How to install Appium?

Appium can be installed either using Node.Js. Run the following command

npm install -g appium
appium --version

Or go to Appium’s official site to download the Appium desktop client.

31)How to set up Appium for ios?

Xcode should be installed on the Mac machine.

xcode-select --install

Install all the dependencies and set the path variables in the bash profile.

install ‘libimobiledevice’ library

brew install libimobiledevice

install ios-deploy

brew install ios-deploy

install Webkit proxy which allows users to interact with mobile safari on real and simulated devices.

brew install ios-webkit-debug-proxy