123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package androidtest.tests;
- import java.io.File;
- import java.io.IOException;
- import java.net.URL;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.concurrent.TimeUnit;
- import org.apache.commons.io.FileUtils;
- import org.openqa.selenium.By;
- import org.openqa.selenium.NoSuchElementException;
- import org.openqa.selenium.OutputType;
- import org.openqa.selenium.TimeoutException;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.remote.Augmenter;
- import org.openqa.selenium.remote.DesiredCapabilities;
- import org.openqa.selenium.remote.RemoteWebDriver;
- import org.openqa.selenium.support.ui.WebDriverWait;
- import io.appium.java_client.android.AndroidDriver;
- import io.appium.java_client.android.AndroidElement;
- import junit.framework.TestCase;
- public class Common extends TestCase{
- AndroidDriver driver;
- static int waitingTime = 30;
-
- WebDriverWait wait;
-
- protected void setUpCommonDriver () throws Exception {
- File rootPath = new File(System.getProperty("user.dir"));
- File appDir = new File(rootPath,"src/test/resources");
- File app = new File(appDir,"ownCloud.apk");
- DesiredCapabilities capabilities = new DesiredCapabilities();
- capabilities.setCapability("platformName", "Android");
- capabilities.setCapability("deviceName", "Device");
- capabilities.setCapability("app", app.getAbsolutePath());
- capabilities.setCapability("app-package", "com.owncloud.android");
- capabilities.setCapability("app-activity", ".ui.activity.FileDisplayActivity");
- capabilities.setCapability("appWaitActivity", ".authentication.AuthenticatorActivity");
- driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
- driver.manage().timeouts().implicitlyWait(waitingTime, TimeUnit.SECONDS);
- wait = new WebDriverWait(driver, waitingTime, 50);
- }
-
- protected boolean waitForTextPresent(String text, AndroidElement element) throws InterruptedException{
- for (int second = 0;;second++){
- if (second >= waitingTime)
- return false;
- try{
- if (text.equals(element.getText()))
- break;
- } catch (Exception e){
-
- }
- Thread.sleep(1000);
- }
- return true;
- }
-
- protected boolean isElementPresent(AndroidElement element, By by) {
- try {
- element.findElement(by);
- return true;
- } catch (NoSuchElementException e) {
- return false;
- }
- }
-
- protected boolean isElementPresent(AndroidElement element) {
- try{
- element.isDisplayed();
- } catch (NoSuchElementException e){
- return false;
- }
- return true;
- }
-
- //pollingTime in milliseconds
- public static void waitTillElementIsNotPresent (AndroidElement element, int pollingTime) throws Exception {
- for (int time = 0;;time += pollingTime){
- if (time >= waitingTime * 1000) //convert to milliseconds
- break;
- try{
- element.isDisplayed();
- } catch (NoSuchElementException e){
- return;
- }
- Thread.sleep(pollingTime);
- }
- throw new TimeoutException();
- }
-
- protected void takeScreenShotOnFailed (String testName) throws IOException {
- File file = ((RemoteWebDriver) driver).getScreenshotAs(OutputType.FILE);
- SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-MM-dd");
- Date today = Calendar.getInstance().getTime();
- String screenShotName = "ScreenShots/" + dt1.format(today) + "/" + testName + ".png";
- FileUtils.copyFile(file, new File(screenShotName));
- }
- }
|