51 Appium Interview Questions(Most Beginner’s Don’t Know!)

In this tutorial, we will discuss the top 50 Appium interview questions and Answers. It will help you to prepare for the interview and crack it.

We will divide the questions and answers into three parts:

Basic Appium interview Questions

What is Appium?

Ans: Appium is an open-source freely distributed mobile UI testing framework.

What types of application can we automate with Appium?

Ans: Appium supports native application, Hybrid applications and Web-views.

List out the Appium abilities?

Ans: For this answer please refer to this Link.

List out the prerequisite to use Appium?

Ans: We need below tools/jar/plugins to work with Appium

  1. JDK
  2. ANDROID studio
  3. IntelliJ/Eclipse
  4. TestNG plugin or dependency if you use Maven
  5. Appium java client

Mention the disadvantages or limitations of Appium?

Ans: Like every tool, Appium also has certain limitations. Please check the answer here.

What are the native Apps?

Ans: Please check the answer from here.

What are hybrid apps?

Ans: Please check the answer from here

What do you understand by M-Web or Mobile Web Apps?

Ans: Please check the answer from here.

What are the supported languages in Appium??

Ans: Appium allows clients to interact with Appium based on sessions. Clients send session requests as a form of POST and pass desired capabilities as a parameter. There are multiple clients like Java, JavaScript, PHP, Ruby, Python, and C#.

Mention the advantages or benefits of using Appium.

Ans: The answer is the same as Question 3. You will find the answer here

List out the Appium supported Automation and Unit Test Framework ?

Ans: We can use all type of test frameworks with Appium. For example, java unit, java TestNG, NUnit etc as unit test framework . Appium test implements the Selenium webDriver to interact with Android or iOS devices.

Mention the limitations or disadvantages of Appium?

Ans: The answer is the same as Question 5. You will find the answer here

How can you verify elements on the iOS app?

Ans: For the iOS app, we can verify the elements using Appium inspector. It is an excellent tool to identify the elements’ id, XPath etc. It can also perform to perform user actions.

What is the Appium inspector?

Ans: Appium inspector is used to inspecting DOM to find out the elements both in Android and iOS. We can record the actions we perform in the inspector. It can generate the scripts in different languages like Java/JUnit, python etc. For a complete guide on Appium inspector, please click here.

How to inspect the DOM element or XPath for mobile application?

Ans: You can find the DOM element or XPath in Couple of ways. Either you can use “UIAuteviewer/UIAutomateviewer2”, or you can use Appium inspector for Android. For iOS, you can use Appium inspector. To learn how to inspect element, please refer to this link.

What’s the difference between simulator with emulator ?

Ans: Emulator and simulator both are visual devices. The emulator is a virtual device for Android, and simulator is a virtual device for iOS launched from Xcode.

How much time does Appium take to automate a test?

Ans: It depends on the scenario you are testing. If you are verifying multiple flows in a single method, it is likely to take more time. But it is always better to make the test cases precise and straightforward so that if any issue occurs in between your execution, you can have the recovery mechanism.

When should we use Appium?

Ans: Appium supports native, mobile web app and hybrid app. It supports cross-platform testing. If you have running on Android or iOS and want to verify it, you can use Appium.

What’s the best approach while Testing is it on real devices or emulators/simulators?

Ans: Again, this is depending on your test scenarios, application behaviours. If it is a straightforward application, you can test both on real devices or simulator/emulator. But if your application has complex logic, it is always better to go for real devices. Generally, we should use these to automate because it is ultimately the end-user who is going to use these applications. Real devices also have issues when connecting to the computer for a long time. ADB connections get lost, and it will show devices not attached, which will fail your test cases.

How to identify M-Web or Mobile Browser objects using Appium?

Ans: UserAgent can be used to identify objects in a M-Web or Mobile Browser. It provides you an way to alter the browser by using mobile proxy to resolve the issue.
Or we can use ChromeCasting for object identification in a Mobile Browser. Using Chromecast, your mobile to the system connection could be established and then you could do inspect elements on mobile from the chrome casting system.

What approach to take to identify the unique object in Appium while same class name having multiple objects

Ans: driver.findElements(By.className) gives the lists off elements. Once we get the lists, we need to traverse through the indexes to handle the elements uniquely with the same class name.

Perform the comparison among Appium and Selenium ?

Ans: As we know Selenium is an open-source tool. It helps to automate web application.On the other hand Appium is also an open-source tool. It uses to automate mobile application( Native, Hybrid, Web-apps). Appium implements Selenium Webdriver to interact with the devices.

How to hide the keyboard in Appium?

how to hide keyboard
Appium interview questions: How to hide keyboard

What are the desired capabilities required for Android?

desired capabilities for android
Appium interview questions: desired capabilities for android

What are the required desired capabilities for iOS?

desired capabilities for iOS
Appium interview questions: desired capabilities for iOS

Intermediate Appium Interview Questions

What Data Exchange is when you do testing on Mobile devices?

Ans: Data exchange in Appium exchange the data hosted by complex objects which actually are being stored in different components of Web-view based app. One example can be the window object.

What are the errors you face in Appium?

Ans:

  • “The following desired capabilities are needed but not provided: Device Name, platformNameError.”
  • “Could not find adb. Please set the ANDROID_HOME environment variable with the Android SDK root directory pathError.”
  • “openqa.selenium.SessionNotCreatedException: A new session could not be createdError.”

What are the conditions to write Appium tests?

To write an Appium test, we must follow the below points:

Appium client: This is an Appium client written in a different language which connects to the Appium server. For example, Appium Java client. 

Appium Session: Appium interacts with mobile devices based on sessions. We need to create a session with the help of Appium client. 

Desired Capabilities: Desired Capabilities are like parameters which we pass while creating the session. It helps the Appium server to identify the devices uniquely.

Driver command: Driver command is nothing but the user actions we perform in devices. For example click() or sendKeys().

How can you verify elements in the Android Native Application?

Ans: You can use “UIAuteviewer/UIAutomateviewer2”, or you can use Appium inspector for Android.

How to scroll down in an App?

how to scroll down
Appium interview Questions: how to scroll down

Is it possible to start the Appium server programmatically?

Ans: Yes, we can programmatically initiate the Appium server session. As Appium uses node.js, we can create .bat file(for Windows) or shell file/command(Linux/Mac) to start the Appium server passing bootstrap port, hub IP and port.

How to swipe left in Appium?

how to swipe left
Appium interview questions: how to swipe left

How to swipe right in Appium?

how to swipe right
Appium interview questions: how to swipe right

Is it possible to run a parallel/multithreaded test in Appium?

Ans: Yes we can run tests on the multithreaded environment, but the condition is to make sure that same Appium server should not used to parallelize the two tests.

Mention the Parallel Testing approach in IOS using Appium?

Ans: Appium has given an option to run iOS tests in parallel from Xcode version 9 and above. There are a couple of prerequisites we need to follow.

  1. “UDID” should be unique.
  2. “wdaLocalPort” should be unique
  3. derivedDataPath root should be unique for each driver instance. 
  4. Sauce Labs gives an option to run iOS tests parallel. We have to upload our Appium test to sauce labs. After that, it will run in multiple iOS tests in parallel.

How to swipe up in Appium?

how to swipe up
Appium interview questions: how to swipe up

How to swipe down in Appium?

how to swipe down
Appium interview questions: how to swipe down

Advanced Appium Interview Questions

What are the selenium commands works with Appium?

Ans: Appium implements Selenium WebDriver. That’s why almost all the WebDriver commands work with Appium. Few examples are mentioned below:

  • Click() command for clicking/tapping the button/links.
  • sendKeys() command to send the value.
  • It supports java scripts commands.
  • Handles alerts.
  • It can switch between the context in web-views.

What are the advantages of Real devices over emulator/Simulator?

 There are a couple of advantages using real devices over emulator/Simulator

  1. We can check low battery scenarios with real devices.
  2. How fast battery gets drained out during testing.
  3. We can check the actual performance of the devices and do app profiling.
  4. We can check Bluetooth related scenarios.
  5. We can check messages and phone calls.

What are the different tools for debugging in Android and iPhone?

Ans: We verify the logs to debug the issues occur in the devices. For Android we can check Monitor, “adb logcat” or “dumpsys” . For the iPhone, we can use iPhone configuration utility.

How can you switch between Android applications?

switch between Android app
Appium interview questions: Switching between android app

How can you switch between iOS applications?

how to switch between iOS app
Appium interview questions: Switching between iOS app

How can you find bundle id in iOS?

  • Copy the .ipa file to your systems and change the extension to .zip file
  • Now unzip the folder and search for iTunesMetadata.plist file
  • Once you get the file, open it in an editor and search for softwareVersionBundleId. It will give you the bundle id.

How can you enable the wifi while the phone is in Airplane mode?

ConnectionStateBuilder connection = 
new ConnectionStateBuilder();
driver.setConnection
(connection.withWiFiEnabled()
.build());));

How can you enable unicode keyboard ?

Ans: We need add below desired capabilities:

desiredCapabilities.setCapability("unicodeKeyboard", true);

How can you copy-paste in Appium?

Ans: Well, no direct method is there to do it. However you can get the value using getText() or getAttributes() methods and pass the same value to the sendKeys().

How to handle WebDriverAgentRunner-Runner.app encountered an error (Failed to install or launch the test runner issue?

rm '/usr/local/bin/carthage' 
brew install carthage 
brew link carthage

There might be other possible solutions to this problem. You can refer this link for other solutions.

When will choose automation testing over manual testing?

Ans: Automation testing will help during regression testing. If you have any complex scenarios or repetitive scenarios, you should automate it.

When will you choose manual testing over automation testing?

When you have new applications, you should test it manually first and probably then automate it. There are specific scenarios where you have to verify from logs/events; we should verify those manually. Scenarios where we don’t need frequent testings, we should not automate those.

How Appium works?

  • We have covered this part in our initial post. Please see the answer here.

How to double click in Appium?

double clicking
Appium interview questions: How to double click

How to uninstall the app in Android?

Unistalling the app
Appium interview questions: How to uninstall the app

How to clear the app data in Android?

App package14
Appium interview questions: How to clear the app data

How will you handle failure cases in Appium ?

Ans: It depends upon the scenarios. If any test cases get failed, we need to restore the app state in order to execute the  next test cases. You can do it either in @AfterMethod or using listeners.

How to make your pass percentage higher in Appium?

Ans: Automating app using Appium sometimes makes the scrips inconsistent. If you run the test cases for longer times or may be due to network issues you can face the inconsistency issue. To make the script more robust we can take the following approach.

Is there any EventListeners in Appium?

Ans: yes, you can use AppiumWebDriverEventListener . You need to implement this interface .

Example:

public class AppiumListener implements AppiumWebDriverEventListener {
   public void beforeChangeValueOf(WebElement webElement, WebDriver webDriver) {
   }
   public void afterChangeValueOf(WebElement webElement, WebDriver webDriver) {
   }
   public void beforeAlertAccept(WebDriver webDriver) {
   }
   public void afterAlertAccept(WebDriver webDriver) {
   }
   public void afterAlertDismiss(WebDriver webDriver) {
   }
   public void beforeAlertDismiss(WebDriver webDriver) {
   }
   public void beforeNavigateTo(String s, WebDriver webDriver) {
   }
   public void afterNavigateTo(String s, WebDriver webDriver) {
   }
   public void beforeNavigateBack(WebDriver webDriver) {
   }
   public void afterNavigateBack(WebDriver webDriver) {
   }
   public void beforeNavigateForward(WebDriver webDriver) {
   }
   public void afterNavigateForward(WebDriver webDriver) {
   }
   public void beforeNavigateRefresh(WebDriver webDriver) {
   }
   public void afterNavigateRefresh(WebDriver webDriver) {
   }
   public void beforeFindBy(By by, WebElement webElement, WebDriver webDriver) {
   }
   public void afterFindBy(By by, WebElement webElement, WebDriver webDriver) {
   }
   public void beforeClickOn(WebElement webElement, WebDriver webDriver) {
   }
   public void afterClickOn(WebElement webElement, WebDriver webDriver) {
   }
   public void beforeChangeValueOf(WebElement webElement, WebDriver webDriver, CharSequence[] charSequences) {
   }
   public void afterChangeValueOf(WebElement webElement, WebDriver webDriver, CharSequence[] charSequences) {
   }
   public void beforeScript(String s, WebDriver webDriver) {
   }
   public void afterScript(String s, WebDriver webDriver) {
   }
   public void beforeSwitchToWindow(String s, WebDriver webDriver) {
   }
   public void afterSwitchToWindow(String s, WebDriver webDriver) {
   }
   /**
    * will work if there is any exception found in the scripts
    * @param throwable
    * @param webDriver
    */
   public void onException(Throwable throwable, WebDriver webDriver) {
       System.out.println("Execute Exception");
   }
   public <X> void beforeGetScreenshotAs(OutputType<X> outputType) {
   }
   public <X> void afterGetScreenshotAs(OutputType<X> outputType, X x) {
   }
   public void beforeGetText(WebElement webElement, WebDriver webDriver) {
   }
   public void afterGetText(WebElement webElement, WebDriver webDriver, String s) {
   }
}

Till now, we have covered three types of Appium interview questions. These are Basic Appium interview questions, Intermediate Appium interview questions and Advanced level of Appium interview questions. This tutorial will help you to prepare for Appium interview questions and give you the confidence to crack it. To learn in-depth on Appium, you can refer to this link.

Reference: Appium