All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xcase.appium.AppiumApplication Maven / Gradle / Ivy

package com.xcase.appium;

import com.xcase.appium.constant.AppiumConstant;
import com.xcase.appium.impl.simple.core.AppiumConfigurationManager;
import com.xcase.appium.impl.simple.pages.CalculatorHomePage;
import com.xcase.appium.impl.simple.pages.MathCalculatorsPage;
import com.xcase.appium.impl.simple.pages.PercentageCalculatorPage;
import io.appium.java_client.android.AndroidDriver;
import java.io.File;
import java.lang.invoke.MethodHandles;
import java.net.URI;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class AppiumApplication {

    /**
     * log4j logger.
     */
    protected static final Logger LOGGER = LogManager.getLogger(MethodHandles.lookup().lookupClass());

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try {
            File classpathRoot = new File(".");
            String appDirectory = AppiumConfigurationManager.getConfigurationManager().getLocalConfig()
                    .getProperty(AppiumConstant.LOCAL_APP_DIRECTORY);
            LOGGER.debug("appDirectory is " + appDirectory);
            File appDir = new File(classpathRoot, appDirectory);
            String appFilename = AppiumConfigurationManager.getConfigurationManager().getLocalConfig()
                    .getProperty(AppiumConstant.LOCAL_APP);
            LOGGER.debug("appFilename is " + appFilename);            
            File app = new File(appDir.getCanonicalPath(), appFilename);
            DesiredCapabilities capabilities = new DesiredCapabilities();
            String deviceName = AppiumConfigurationManager.getConfigurationManager().getLocalConfig()
                    .getProperty(AppiumConstant.LOCAL_DEVICE_NAME);
            LOGGER.debug("deviceName is " + deviceName);             
            capabilities.setCapability("deviceName", deviceName);
            capabilities.setCapability("app", app.getAbsolutePath());
            String appPackage = AppiumConfigurationManager.getConfigurationManager().getLocalConfig()
                    .getProperty(AppiumConstant.LOCAL_APP_PACKAGE);
            LOGGER.debug("appPackage is " + appPackage);             
            capabilities.setCapability("appPackage", appPackage);
            String appActivity = AppiumConfigurationManager.getConfigurationManager().getLocalConfig()
                    .getProperty(AppiumConstant.LOCAL_APP_ACTIVITY);
            LOGGER.debug("appActivity is " + appActivity);             
            capabilities.setCapability("appActivity", appActivity);
            AndroidDriver driver = null;
            String webDriver = AppiumConfigurationManager.getConfigurationManager().getLocalConfig()
                    .getProperty(AppiumConstant.LOCAL_WEBDRIVER);
            LOGGER.debug("webDriver is " + webDriver);
            switch (webDriver) {
            case "AndroidDriver":
                driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
                break;
            case "ChromeDriver":

                break;
            case "FirefoxDriver":

                break;
            case "MSEdgeDriver":

                break;
            default:
                LOGGER.warn("unrecognized webDriver " + webDriver);
            }

            // Puts an Implicit wait, Will wait for 10 seconds before throwing exception
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

            // Find text on page
            driver.findElementById("text_view_id");
            LOGGER.debug("found element");
            String result = driver.findElementById("text_view_id").getText();

            // Log the result
            LOGGER.debug("The result is " + result);

            // Close the Browser.
            driver.close();
        } catch (Exception e) {
            LOGGER.warn("exception running application: " + e.getMessage());
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy