// my method to harvest unique nearby places' names public boolean checkNearbyPlacesPresence() { Set<String> placesNamesSet = new HashSet<String>(); List<WebElement> list = new ArrayList<WebElement>(); list.addAll( appiumDriver.findElements( By.xpath("//android.widget.TextView[contains(@resource-id, 'txtLocationName')]"))); for (WebElement item : list) { placesNamesSet.add(item.getAttribute("text")); } int oldSetSize = placesNamesSet.size(); boolean continueScroll = oldSetSize < 1 ? false : true; while (continueScroll) { ((AppiumDriver) appiumDriver).swipe(545, 1630, 545, 330, 2000); nearbyPlaceName.isDisplayed(); list.clear(); list.addAll( appiumDriver.findElements( By.xpath("//android.widget.TextView[contains(@resource-id, 'txtLocationName')]"))); for (WebElement item : list) { placesNamesSet.add(item.getAttribute("text")); } continueScroll = placesNamesSet.size() > oldSetSize ? true : false; oldSetSize = placesNamesSet.size(); } System.out.println("Set of nearby places:"); for (String item : placesNamesSet) { System.out.println(item); } System.out.println("Total nearby places: " + placesNamesSet.size()); return placesNamesSet.size() > 0; }
@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(); }
public boolean isContactPresent(String name) { MainScreen mainScreen = new MainScreen(); mainScreen.waitForPageToLoad(); AppiumDriver appiumDriver = (AppiumDriver) getDriver().getUnderLayingDriver(); // appiumDriver.scrollTo(name); int numberContactsDisplayed = getDriver() .findElements(By.xpath("//android.widget.ListView//android.widget.LinearLayout")) .size(); System.out.println("Total Contacts : " + numberContactsDisplayed); int total_scrolls_required = numberContactsDisplayed / 10 + 15; // 50 numberContactsDisplayed = numberContactsDisplayed > 10 ? 10 : numberContactsDisplayed; QAFExtendedWebElement startEle = getDriver() .findElement( By.xpath( String.format( "//android.widget.LinearLayout[%d]/android.widget.TextView[1]", numberContactsDisplayed))); QAFExtendedWebElement endEle = getDriver() .findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.TextView[1]")); boolean contactFound = false; for (int i = 0; i < total_scrolls_required && !contactFound; i++) { QAFTestBase.pause(300); if (!new QAFExtendedWebElement( "xpath=//android.widget.TextView[contains(@text,'" + name + "')]") .isPresent()) { // getDriver().getTouchScreen().flick(startEle.getCoordinates(), // startEle.getCoordinates().onPage().getX(), -400, 35); appiumDriver.swipe( startEle.getCoordinates().onPage().getX(), startEle.getCoordinates().onPage().getY(), endEle.getCoordinates().onPage().getX(), endEle.getCoordinates().onPage().getY(), 700); } else { contactFound = true; break; } } return contactFound; }