Appium with Java
- Home
- Appium with Java
Using Appium with Java is one of the most popular approaches for automating mobile applications (Android and iOS). Below is a complete guide to get started with Appium and Java using JUnit or TestNG, and optionally integrate it with BDD frameworks like Cucumber.
What You Need
Tool | Purpose |
---|---|
Appium | Mobile automation framework |
Java | Programming language for scripting |
Appium Java Client | Java bindings for Appium |
JUnit/TestNG | Test runners |
Maven/Gradle | Dependency manager |
Android Studio / Xcode | Emulator or real device |
1. Maven Dependencies (pom.xml
)
<dependencies>
<!-- Appium Java Client -->
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>9.0.0</version>
</dependency>
<!-- TestNG or JUnit -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.8.0</version>
<scope>test</scope>
</dependency>
</dependencies>
2. Sample Test Script (Android – Java)
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.*;
import java.net.MalformedURLException;
import java.net.URL;
public class AppiumBasicTest {
public AndroidDriver<MobileElement> driver;
@BeforeClass
public void setUp() throws MalformedURLException {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
caps.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554");
caps.setCapability(MobileCapabilityType.APP, System.getProperty("user.dir") + "/apps/yourapp.apk");
caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), caps);
}
@Test
public void testLoginButton() {
MobileElement loginBtn = driver.findElementById("com.example:id/login");
loginBtn.click();
}
@AfterClass
public void tearDown() {
if (driver != null)
driver.quit();
}
}
3. Appium Server Setup
Install Appium:
npm install -g appium
Start Appium server:
appium
Use an emulator or real device (ensure ADB recognizes it):
adb devices
4. Common Locators
driver.findElementById("com.example:id/element");
driver.findElementByXPath("//android.widget.TextView[@text='Login']");
driver.findElementByAccessibilityId("login_button");
Optional Enhancements
Use Page Object Model for maintainability
Add Cucumber for BDD (
cucumber-java
,cucumber-testng
)Integrate with CI tools like Jenkins
Generate reports with Allure or ExtentReports