Best io.appium code snippet using io.appium.java_client.pagefactory.AppiumFieldDecorator
BasePO.java
Source:BasePO.java
2 * (C) Copyright 2018 by Pratik Patel (https://github.com/prat3ik/)3 */4package pageobjects;5import io.appium.java_client.AppiumDriver;6import io.appium.java_client.pagefactory.AppiumFieldDecorator;7import org.openqa.selenium.support.PageFactory;8import utils.PropertyUtils;9import utils.WaitUtils;10import java.util.concurrent.TimeUnit;11/**12 * Base Page Object Class: This class assign the driver instance and WaitLibrary13 * @author prat3ik14 */15public abstract class BasePO {16 public final static int IMPLICIT_WAIT = PropertyUtils.getIntegerProperty("implicitWait", 30);17 private static final int KEYBOARD_ANIMATION_DELAY = 1000;18 private static final int XML_REFRESH_DELAY = 1000;19 WaitUtils waitUtils;20 protected final AppiumDriver driver;21 /**22 * A base constructor that sets the page's driver23 *24 * The page structure is being used within this test in order to separate the25 * page actions from the tests.26 *27 * Please use the AppiumFieldDecorator class within the page factory. This way annotations28 * like @AndroidFindBy within the page objects.29 *30 * @param driver the appium driver created in the beforesuite method.31 */32 protected BasePO(AppiumDriver driver){33 this.driver = driver;34 initElements();35 loadProperties();36 waitUtils = new WaitUtils();37 }38 private void initElements() {39 PageFactory.initElements(new AppiumFieldDecorator(driver, IMPLICIT_WAIT, TimeUnit.SECONDS), this);40 }41 private void loadProperties() {42 }43}
LoginPage.java
Source:LoginPage.java
...3import io.appium.java_client.AppiumDriver;4import io.appium.java_client.MobileElement;5import io.appium.java_client.pagefactory.AndroidBy;6import io.appium.java_client.pagefactory.AndroidFindBy;7import io.appium.java_client.pagefactory.AppiumFieldDecorator;8import io.appium.java_client.pagefactory.iOSFindBy;9import org.openqa.selenium.support.PageFactory;10public class LoginPage {11 AppiumDriver driver;12 @AndroidFindBy(accessibility = "login")13 @iOSFindBy(accessibility = "login")14 private MobileElement loginButton;15 Helpers helper;16 public LoginPage(AppiumDriver driver){17 this.driver=driver;18 PageFactory.initElements(new AppiumFieldDecorator(driver),this);19 helper=new Helpers(driver);20 }21 public HomePage clickLoginButton(){22 helper.waitForElement(loginButton);23 loginButton.click();24 return new HomePage(driver);25 }26}...
Preferences.java
Source:Preferences.java
...5import io.appium.java_client.AppiumDriver;6import io.appium.java_client.MobileElement;7import io.appium.java_client.android.AndroidElement;8import io.appium.java_client.pagefactory.AndroidFindBy;9import io.appium.java_client.pagefactory.AppiumFieldDecorator;10public class Preferences {11 12 /*public Preferences(AppiumDriver driver) {13 //PageFactory.initElements(new AppiumFieldDecorator((driver), 20, TimeUnit.SECONDS, this);14 PageFactory.initElements(new AppiumFieldDecorator(driver), 20, TimeUnit.SECONDS, this);15 }*/16 17 public Preferences(AppiumDriver driver) {18 //super(driver);19 PageFactory.initElements(new AppiumFieldDecorator((driver)), this);20 21 }22 23 @AndroidFindBy(xpath = "//android.widget.TextView[@text='3. Preference dependencies']")24 public AndroidElement Dependencies;25}...
DependenciesPage.java
Source:DependenciesPage.java
2import org.openqa.selenium.WebElement;3import org.openqa.selenium.support.PageFactory;4import io.appium.java_client.AppiumDriver;5import io.appium.java_client.pagefactory.AndroidFindBy;6import io.appium.java_client.pagefactory.AppiumFieldDecorator;7public class DependenciesPage {8 9 public DependenciesPage(AppiumDriver driver) {10 // TODO Auto-generated constructor stub11 //AppiumFieldDecorator give the ability to test across iOS and Android platforms12 PageFactory.initElements(new AppiumFieldDecorator(driver), this);13 }14 15 @AndroidFindBy(id="android:id/checkbox")16 public WebElement wifiCheckBox;17 @AndroidFindBy(xpath="(//android.widget.RelativeLayout)[2]")18 public WebElement wifiSettings;19 @AndroidFindBy(className="android.widget.EditText")20 public WebElement editText;21 22 @AndroidFindBy(className="android.widget.Button")23 public WebElement editTextBtn;24}...
HomePage.java
Source:HomePage.java
...4import io.appium.java_client.AppiumDriver;5import io.appium.java_client.android.AndroidDriver;6import io.appium.java_client.android.AndroidElement;7import io.appium.java_client.pagefactory.AndroidFindBy;8import io.appium.java_client.pagefactory.AppiumFieldDecorator;9// All th objects belonging to one page will be defined in java class10public class HomePage {11// 1. Is to call the driver object from testcase to Pageobject file12 13 //Concatenate driver14 public HomePage(AndroidDriver<AndroidElement> driver)15 {16 PageFactory.initElements(new AppiumFieldDecorator(driver), this);17 }18 19 20 @AndroidFindBy(xpath="//android.widget.TextView[@text='Preference']")21 public WebElement Preferences;22 23 24 25 26 //driver.findElementByXpath("//android.widget.TextView[@text='Preference']");27 28 29 30 ...
PreferencesPage.java
Source:PreferencesPage.java
...4import io.appium.java_client.AppiumDriver;5import io.appium.java_client.android.AndroidDriver;6import io.appium.java_client.android.AndroidElement;7import io.appium.java_client.pagefactory.AndroidFindBy;8import io.appium.java_client.pagefactory.AppiumFieldDecorator;9public class PreferencesPage{10 11 public PreferencesPage(AppiumDriver driver) {12 // TODO Auto-generated constructor stub13 //AppiumFieldDecorator give the ability to test across iOS and Android platforms14 PageFactory.initElements(new AppiumFieldDecorator(driver), this);15 }16 17 @AndroidFindBy(xpath="//android.widget.TextView[@text='3. Preference dependencies']")18 public WebElement dependencies;19}...
HandleDropDown.java
Source:HandleDropDown.java
...3import org.openqa.selenium.support.PageFactory;4import io.appium.java_client.android.AndroidDriver;5import io.appium.java_client.android.AndroidElement;6import io.appium.java_client.pagefactory.AndroidFindBy;7import io.appium.java_client.pagefactory.AppiumFieldDecorator;8public class HandleDropDown {9 AndroidDriver<AndroidElement> driver;10 11 12 public HandleDropDown(AndroidDriver<AndroidElement> driver) {13 PageFactory.initElements(new AppiumFieldDecorator(driver), this);14 }15 16 @AndroidFindBy(xpath = "//*[@text='1. Screen Top']")17 public WebElement topBtn;18 19 @AndroidFindBy(id = "io.appium.android.apis:id/edit")20 public WebElement countryField;21 22 23}...
HorizontalScrolling.java
Source:HorizontalScrolling.java
...3import org.openqa.selenium.support.PageFactory;4import io.appium.java_client.android.AndroidDriver;5import io.appium.java_client.android.AndroidElement;6import io.appium.java_client.pagefactory.AndroidFindBy;7import io.appium.java_client.pagefactory.AppiumFieldDecorator;8public class HorizontalScrolling {9 AndroidDriver<AndroidElement> driver;10 11 12 public HorizontalScrolling(AndroidDriver<AndroidElement> driver) {13 PageFactory.initElements(new AppiumFieldDecorator(driver), this);14 }15 16 @AndroidFindBy(xpath = "//*[@text='5. Scrollable']")17 public WebElement scrollBtn;18 19 20 21}
AppiumFieldDecorator
Using AI Code Generation
1@AndroidFindBy(id="com.example.android.contactmanager:id/addContactButton")2public MobileElement addContactButton;3@AndroidFindBy(id="com.example.android.contactmanager:id/contactNameEditText")4public MobileElement contactName;5@AndroidFindBy(id="com.example.android.contactmanager:id/contactPhoneEditText")6public MobileElement contactPhone;7@AndroidFindBy(id="com.example.android.contactmanager:id/contactEmailEditText")8public MobileElement contactEmail;9@AndroidFindBy(id="com.example.android.contactmanager:id/contactSaveButton")10public MobileElement contactSaveButton;11@AndroidFindBy(id="com.example.android.contactmanager:id/contactManager")12public MobileElement contactManager;13}
AppiumFieldDecorator
Using AI Code Generation
1PageFactory.initElements(new AppiumFieldDecorator(driver), this);2PageFactory.initElements(new AppiumFieldDecorator(driver), this);3PageFactory.initElements(new AppiumFieldDecorator(driver), this);4PageFactory.initElements(new AppiumFieldDecorator(driver), this);5PageFactory.initElements(new AppiumFieldDecorator(driver), this);6PageFactory.initElements(new AppiumFieldDecorator(driver), this);7PageFactory.initElements(new AppiumFieldDecorator(driver), this);8PageFactory.initElements(new AppiumFieldDecorator(driver), this);9PageFactory.initElements(new AppiumFieldDecorator(driver), this);10PageFactory.initElements(new AppiumFieldDecorator(driver), this);11PageFactory.initElements(new AppiumFieldDecorator(driver), this);12PageFactory.initElements(new Appium
AppiumFieldDecorator
Using AI Code Generation
1package com.appium.test;2import org.openqa.selenium.support.PageFactory;3import io.appium.java_client.pagefactory.AppiumFieldDecorator;4import org.openqa.selenium.support.PageFactory;5import org.openqa.selenium.support.ui.WebDriverWait;6import org.openqa.selenium.support.ui.ExpectedConditions;7import org.openqa.selenium.support.ui.ExpectedCondition;8import org.openqa.selenium.WebDriver;9import org.openqa.selenium.WebElement;10import org.openqa.selenium.By;11import org.openqa.selenium.remote.DesiredCapabilities;12import org.openqa.selenium.remote.RemoteWebDriver;13import org.openqa.selenium.support.FindBy;14import org.junit.Test;15import org.junit.Before;16import org.junit.After;17import java.net.URL;18import java.net.MalformedURLException;19import java.util.logging.Level;20import java.util.List;21import java.util.concurrent.TimeUnit;22import java.util.logging.Logger;23public class TestAppium {24public WebDriver driver;25public WebDriverWait wait;26public void setUp() throws MalformedURLException {27DesiredCapabilities capabilities = new DesiredCapabilities();28capabilities.setCapability("BROWSER_NAME", "Android");29capabilities.setCapability("VERSION", "4.4.2");30capabilities.setCapability("deviceName","Android Emulator");31capabilities.setCapability("platformName","Android");32capabilities.setCapability("appPackage", "com.android.calculator2");33capabilities.setCapability("appActivity","com.android.calculator2.Calculator");
AppiumFieldDecorator
Using AI Code Generation
1public class HomePage {2 @AndroidFindBy(id = "com.example.android.contactmanager:id/addContactButton")3 private MobileElement addContactButton;4 @AndroidFindBy(id = "com.example.android.contactmanager:id/contactNameEditText")5 private MobileElement contactNameTextField;6 @AndroidFindBy(id = "com.example.android.contactmanager:id/contactPhoneEditText")7 private MobileElement contactPhoneTextField;8 @AndroidFindBy(id = "com.example.android.contactmanager:id/contactEmailEditText")9 private MobileElement contactEmailTextField;10 @AndroidFindBy(id = "com.example.android.contactmanager:id/contactSaveButton")11 private MobileElement contactSaveButton;12 @AndroidFindBy(id = "com.example.android.contactmanager:id/contactList")13 private MobileElement contactList;14 private MobileElement contactName;15 private MobileElement contactEmail;16 private MobileElement contactPhone;17 public HomePage(AppiumDriver<MobileElement> driver) {18 PageFactory.initElements(new AppiumFieldDecorator(driver), this);19 }20 public void clickAddContactButton() {21 addContactButton.click();22 }23 public void enterContactName(String name) {24 contactNameTextField.sendKeys(name);25 }26 public void enterContactPhone(String phone) {27 contactPhoneTextField.sendKeys(phone);28 }29 public void enterContactEmail(String email) {30 contactEmailTextField.sendKeys(email);31 }32 public void clickSaveButton() {33 contactSaveButton.click();34 }35 public boolean verifyContactName() {36 return contactName.isDisplayed();37 }38 public boolean verifyContactPhone() {39 return contactPhone.isDisplayed();40 }
AppiumFieldDecorator
Using AI Code Generation
1public class LoginPage extends BasePage {2 @AndroidFindBy(id = "com.example.android.contactmanager:id/addContactButton")3 public MobileElement addContactButton;4 @AndroidFindBy(id = "com.example.android.contactmanager:id/contactNameEditText")5 public MobileElement contactName;6 @AndroidFindBy(id = "com.example.android.contactmanager:id/contactPhoneEditText")7 public MobileElement contactPhone;8 @AndroidFindBy(id = "com.example.android.contactmanager:id/contactEmailEditText")9 public MobileElement contactEmail;10 @AndroidFindBy(id = "com.example.android.contactmanager:id/contactSaveButton")11 public MobileElement contactSaveButton;12 public LoginPage(AndroidDriver<MobileElement> driver) {13 super(driver);14 PageFactory.initElements(new AppiumFieldDecorator(driver), this);15 }16 public void addContact(String name, String phone, String email) {17 addContactButton.click();18 contactName.sendKeys(name);19 contactPhone.sendKeys(phone);20 contactEmail.sendKeys(email);21 contactSaveButton.click();22 }23}24public class BasePage {25 public AndroidDriver<MobileElement> driver;26 public BasePage(AndroidDriver<MobileElement> driver) {27 this.driver = driver;28 }29}30public class TestAppium {31 public static void main(String[] args) throws MalformedURLException {32 DesiredCapabilities capabilities = new DesiredCapabilities();33 capabilities.setCapability("deviceName", "Android Emulator");34 capabilities.setCapability("platformName", "Android");35 capabilities.setCapability("appPackage", "com.example.android.contactmanager");36 capabilities.setCapability("appActivity", ".ContactManager");
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!