@Before public void setUp() throws Exception { DesiredCapabilities capabilities = DesiredCapabilities.iphone(); capabilities.setCapability("build", "Parallel iOS Native App Test Suite"); capabilities.setCapability("name", "Parallel iOS Native App Test Suite"); capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, platformVersion); capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, deviceName); capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS"); capabilities.setCapability(MobileCapabilityType.APP, "sauce-storage:UICatalog.zip"); capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, ""); capabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 180); capabilities.setCapability(MobileCapabilityType.DEVICE_READY_TIMEOUT, 60); capabilities.setCapability("deviceOrientation", "portrait"); capabilities.setCapability("appiumVersion", "1.4.16"); capabilities.setCapability("sendKeyStrategy", "setValue"); // fastest typing method capabilities.setCapability( "noReset", true); // to reuse the simulator/installed app between tests, rather than restart sim driver = new IOSDriver( new URL( "http://" + SAUCE_USERNAME + ":" + SAUCE_KEY + "@ondemand.saucelabs.com:80/wd/hub"), capabilities); sessionId = (driver.getSessionId()).toString(); wait = new WebDriverWait(driver, 15); // wait until main view loads wait.until( ExpectedConditions.visibilityOf( driver.findElement(MobileBy.AccessibilityId("date_picker_button")))); }
@Test public void datePickerTest() throws Exception { // Using Joda Time DateTime and DateTimeFormatter for this test! // Creating test data - using +3 days, hours and minutes // to make sure that all wheels are used DateTime testDate = new DateTime().plusDays(3).plusHours(3).plusMinutes(3); // hour of the day - short format // i tried to get it using .hourOfDay().getAsShortText() but it would only return 24hr format... DateTimeFormatter hourOfDayFormat = DateTimeFormat.forPattern("K"); // half day of day - AM or PM // have to use a new formatter for this as there is no getter - let me know if I'm wrong! DateTimeFormatter halfDayFormat = DateTimeFormat.forPattern("aa"); // short date - example "Sun Dec 27" // to be used with the date picker in gregorian calendar DateTimeFormatter shortDateFormat = DateTimeFormat.forPattern("E MMM d"); // longDate - example pattern "Dec 27, 2015, 5:55 PM" // to be used for assertion at the end of the test DateTimeFormatter longDateFormat = DateTimeFormat.forPattern("MMM d, yyyy, K:mm aa"); final String hour = testDate.toString(hourOfDayFormat); final String minute = testDate.minuteOfHour().getAsString(); final String shortDate = testDate.toString(shortDateFormat); final String longDate = testDate.toString(longDateFormat); final String halfDay = testDate.toString(halfDayFormat); driver.findElement(MobileBy.AccessibilityId("date_picker_button")).click(); // wait for Date Picker view to load wait.until( ExpectedConditions.visibilityOf(driver.findElement(MobileBy.className("UIAPickerWheel")))); List<WebElement> pickerWheel_elements = driver.findElements(MobileBy.className("UIAPickerWheel")); pickerWheel_elements.get(0).sendKeys(shortDate); pickerWheel_elements.get(1).sendKeys(hour); pickerWheel_elements.get(2).sendKeys(minute); pickerWheel_elements.get(3).sendKeys(halfDay); String dateValidation_element = driver.findElement(MobileBy.AccessibilityId("current_date")).getText(); assertThat(dateValidation_element, is(longDate)); }
@Test public void runWebTest() throws Exception { driver.get("http://www.thoughtworks.com"); WebElement idElement = driver.findElement(By.id("mobile-menu-title")); assertNotNull(idElement); elementHighlight(idElement); idElement.click(); wait.until( ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[@id='mobile-menu']/li[6]/a"))); WebElement commentElement = driver.findElement(By.xpath(".//*[@id='mobile-menu']/li[6]/a")); elementHighlight(commentElement); assertNotNull(commentElement); commentElement.click(); Thread.sleep(5000); WebElement contact_us = driver.findElement(By.xpath(".//*[@id='footer-menu']/div/ul/li[9]/a")); contact_us.click(); wait.until( ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[@id='contact-us-vertical']"))); }
@Test public void addContact() { WebElement el = driver.findElement(By.name("Add Contact")); el.click(); List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText"); textFieldsList.get(0).sendKeys("Some Name"); textFieldsList.get(2).sendKeys("*****@*****.**"); driver.swipe(100, 500, 100, 100, 2); driver.findElementByName("Save").click(); }
@Test public void textInputAlertTest() { driver.findElement(MobileBy.AccessibilityId("alert_views_button")).click(); driver.findElement(MobileBy.AccessibilityId("text_entry_alert_button")).click(); wait.until(ExpectedConditions.alertIsPresent()); Alert alert = driver.switchTo().alert(); String titleAndMessage = alert.getText(); assertThat( titleAndMessage, is("A Short Title Is Best A message should be a short, complete sentence.")); // input text String text_alert_message = "testing alert text input field"; alert.sendKeys(text_alert_message); String alertTextInputField_value = driver.findElement(MobileBy.xpath("//UIAAlert//UIATextField")).getText(); assertThat(alertTextInputField_value, is(text_alert_message)); }
@Test public void handlingSimpleAlertTest() { final String expected_alert_text = "A Short Title Is Best A message should be a short, complete sentence."; driver.findElement(MobileBy.AccessibilityId("alert_views_button")).click(); // wait for alert view to load by waiting for "simple" alert button wait.until( ExpectedConditions.visibilityOf( driver.findElement(MobileBy.AccessibilityId("simple_alert_button")))) // and click on it .click(); wait.until(ExpectedConditions.alertIsPresent()); Alert alert = driver.switchTo().alert(); String titleAndMessage = alert.getText(); assertThat(titleAndMessage, is(expected_alert_text)); alert.accept(); }
@Test public void testApp() throws MalformedURLException, InterruptedException { File app = new File("F:\\Whizdom-Trainings\\Tools\\Appium\\apps\\com.whatsapp-2.apk"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "Nexus 5"); capabilities.setCapability("platformVersion", "4.4.4"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("app", app.getAbsolutePath()); driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); WebElement listView = driver.findElement(By.id("android:id/list")); List<WebElement> allChats = listView.findElements(By.className("android.widget.RelativeLayout")); System.out.println("Total - " + allChats.size()); WebElement secondChat = allChats.get(1); System.out.println("Text - " + secondChat.getText()); }
@Test public void MobileElementByTest() { WebElement element = driver.findElement(MobileBy.AccessibilityId("UICatalog")); assertNotNull(element); }
/** Return an element by locator * */ public static MobileElement element(By locator) { return w(driver.findElement(locator)); }
@Test public void testAndroidText4() throws Exception { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); capabilities.setCapability("deviceName", "CB5A1LYY6N"); capabilities.setCapability("automationName", "Selendroid"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("app", "/home/justice/Downloads/app-debug.apk"); capabilities.setCapability("app-package", "com.sony.csx.ad.mobile"); capabilities.setCapability("app-activity", "com.sony.csx.ad.mobile.MainActivity"); AppiumDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); // input EntityID AppiumSAMAPI.InputEntityID(driver, entityID); // input WindowID AppiumSAMAPI.InputWindowID(driver, windowID); // load ad AppiumSAMAPI.ClickLoadAD(driver); driver.context("WEBVIEW_0"); System.out.println(driver.getPageSource()); System.out.println( driver .findElement(By.xpath("//div[contains(@class, 'text_description_content')]")) .getText()); System.out.println( driver.findElement(By.xpath("//div[contains(@class, 'text_title_content')]")).getText()); assertTrue( "Selenium Auto Test for Text4 Description not found!!", driver.getPageSource().contains("Selenium Auto Test for Text4 Description")); assertTrue( "Selenium Auto Test for Text4 Description not found!!", driver .findElement(By.xpath("//div[contains(@class, 'text_description_content')]")) .getText() .equals("Selenium Auto Test for Text4 Description")); assertTrue( "Selenium Auto Test for Text4 Title not found!!", driver .findElement(By.xpath("//div[contains(@class, 'text_title_content')]")) .getText() .equals("Selenium Auto Test for Text4 Title")); assertTrue( "textad.css not found!!", driver.getPageSource().contains("/dev2/ad/csx/csxwin/css/textad.css")); // click impression AppiumSAMAPI.ClickImpression(driver); // driver.findElementByLinkText("Selenium Auto Test for Text1 Title").click(); // driver.findElementByPartialLinkText("Selenium Auto Test for Text1 // Title").sendKeys("Keys.ENTER"); // driver.context("WEBVIEW_0"); // driver.findElement(By.xpath("//div[contains(@class, 'text_title_content')]")).click(); Thread.sleep(5000); assertTrue( "ClickCount does not match!!" + "It should be" + ClickCount + 1 + " But now is " + ClickCount, JSON.GetClick(campaignID, orderLinesID) == ClickCount); assertTrue( "ImpressionCount does not match" + "It should be" + ImpressionCount + 1 + " But now is " + ImpressionCount, JSON.GetImpression(campaignID, orderLinesID) == ImpressionCount + 1); ClickCount = JSON.GetClick(campaignID, orderLinesID); ImpressionCount = JSON.GetImpression(campaignID, orderLinesID); System.out.println("ClickCount after test: " + ClickCount); System.out.println("ImpressionCount after test: " + ImpressionCount); driver.quit(); }