package com.mobiliya.iosDemo.realDeviceTest.configure; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.TimeUnit; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.remote.BrowserType; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.support.ui.WebDriverWait; import io.appium.java_client.AppiumDriver; import io.appium.java_client.ios.IOSDriver; import io.appium.java_client.remote.MobileCapabilityType; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class SetCapabilities { @SuppressWarnings("rawtypes") public static AppiumDriver driver = null; public static DesiredCapabilities caps = null; public static WritableWorkbook writableWorkbook = null; public static WritableSheet writableSheet = null; public static Label label = null; public static int excelRow = 0; public static WebDriverWait wait = null; public static void initializeExplicitWait() { try { wait = new WebDriverWait(driver, Constants.EXPLICIT_WAIT_TIMEOUT_IN_SECS); wait.withTimeout(Constants.EXPLICIT_WAIT_TIMEOUT_IN_SECS, TimeUnit.SECONDS) .pollingEvery(Constants.EXPLICIT_WAIT_POLLING_TIME_IN_MILLISECS, TimeUnit.MILLISECONDS) .ignoring(NoSuchElementException.class); System.out.println("Wait initialized."); } catch (Exception e) { e.printStackTrace(); } } public static void setDeviceCapabilities() { String []connectedDevice = Utilities.getForUid(); try { Constants.DEVICE_NAME = connectedDevice[0]; Constants.DEVICE_UDID = connectedDevice[1]; caps.setCapability(MobileCapabilityType.PLATFORM_NAME, Constants.PLATFORM_NAME); caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, Constants.PLATFORM_VERSION); //caps.setCapability(MobileCapabilityType.BROWSER_NAME, BrowserType.SAFARI); //caps.setCapability(MobileCapabilityType.PLATFORM, Constants.PLATFORM); caps.setCapability(MobileCapabilityType.FULL_RESET, Constants.FULL_RESET); caps.setCapability(MobileCapabilityType.DEVICE_NAME, connectedDevice[0]); caps.setCapability(MobileCapabilityType.UDID, connectedDevice[1]); caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 15000); System.out.println("Device capabilities Specified."); } catch (Exception e) { e.printStackTrace(); } } public static void setGitHubAppCapabilities() { try { caps = new DesiredCapabilities(); SetCapabilities.setDeviceCapabilities(); caps.setCapability("app", Constants.GITHUB_APP_PATH); caps.setCapability("bundleId", Constants.GITHUB_BUNDLE_ID); System.out.println("GitHubApp capabilities specified."); } catch (Exception e) { e.printStackTrace(); } } public static void setOrtholineAppCapabilities() { try { caps = new DesiredCapabilities(); SetCapabilities.setDeviceCapabilities(); caps.setCapability("app", Constants.ORTHOLINE_APP_PATH); caps.setCapability("bundleId", Constants.ORTHOLINE_BUNDLE_ID); System.out.println("OrtholineApp capabilities specified."); } catch (Exception e) { e.printStackTrace(); } } public static void setEdvelopAppCapabilities() { try { caps = new DesiredCapabilities(); SetCapabilities.setDeviceCapabilities(); caps.setCapability("waitForAppScript", Constants.EDVELOP_WAIT_FOR_APP_SCRIPT); caps.setCapability("autoAcceptAlerts", Constants.EDVELOP_AUTO_ACCEPT_ALERTS); caps.setCapability("app", Constants.EDVELOP_APP_PATH); caps.setCapability("bundleId", Constants.EDVELOP_BUNDLE_ID); System.out.println("EdvelopApp capabilities specified."); } catch (Exception e) { e.printStackTrace(); } } public static void setSafariLauncherCapabilities() { try { caps = new DesiredCapabilities(); SetCapabilities.setDeviceCapabilities(); caps.setCapability(MobileCapabilityType.BROWSER_NAME, BrowserType.SAFARI); System.out.println("SafariLauncher capabilities specified."); } catch (Exception e) { e.printStackTrace(); } } @SuppressWarnings("rawtypes") public static void setDriver() { try { try { driver = new IOSDriver(new URL(Constants.APPIUM_SERVICE_URL), caps); System.out.println("Connected to Appium Server."); } catch (MalformedURLException e) { e.printStackTrace(); } driver.manage().timeouts().implicitlyWait(Constants.IMPLICIT_WAIT_TIMEOUT_IN_SECS, TimeUnit.SECONDS); SetCapabilities.initializeExplicitWait(); System.out.println("Driver setup completed."); } catch (Exception e) { e.printStackTrace(); } } }