*Base#
Tue Jul 11 2023 09:24:03 GMT+0000 (Coordinated Universal Time)
Saved by @mehran
package tests;
import org.testng.ITestResult;
import com.adak.ir.LoggingUtils;
import com.epam.reportportal.annotations.Step;
import com.epam.reportportal.annotations.attribute.Attribute;
import com.epam.reportportal.annotations.attribute.Attributes;
import com.epam.reportportal.annotations.attribute.MultiKeyAttribute;
import io.appium.java_client.android.AndroidStartScreenRecordingOptions;
import io.appium.java_client.screenrecording.BaseStartScreenRecordingOptions;
import com.epam.reportportal.testng.ReportPortalTestNGListener;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.screenrecording.CanRecordScreen;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.TimeUnit;
///
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidStartScreenRecordingOptions;
import io.appium.java_client.android.StartsActivity;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;
import java.nio.file.Paths;
import java.util.concurrent.TimeUnit;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.io.File;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.Alert;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;
import java.util.concurrent.TimeUnit;
//import io.appium.java_client.MobileElement;
///GET TEXT
import java.io.File;
import io.appium.java_client.MobileBy;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import junit.framework.Assert;
//scorll Dwon
import io.appium.java_client.PerformsTouchActions;
import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.Dimension;
import io.appium.java_client.touch.offset.PointOption;
///
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.Augmenter;
import com.google.common.collect.ImmutableMap;
import org.testng.Reporter;
///wait
import org.openqa.selenium.support.ui.WebDriverWait;
import java.time.Duration;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.io.FileHandler;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Listeners;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.testng.ITestListener;
import org.testng.ITestResult;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.time.LocalDateTime;
import org.testng.ITestResult;
import com.adak.ir.LoggingUtils;
import com.adak.ir.LoggingUtils;
import java.time.Duration;
import com.epam.reportportal.annotations.Step;
import com.epam.reportportal.annotations.attribute.Attribute;
import com.epam.reportportal.annotations.attribute.Attributes;
import com.epam.reportportal.annotations.attribute.MultiKeyAttribute;
import io.appium.java_client.android.AndroidStartScreenRecordingOptions;
import io.appium.java_client.screenrecording.BaseStartScreenRecordingOptions;
import com.epam.reportportal.testng.ReportPortalTestNGListener;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.screenrecording.CanRecordScreen;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
import org.openqa.selenium.WebElement;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.TimeUnit;
///
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidStartScreenRecordingOptions;
import io.appium.java_client.android.StartsActivity;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;
import java.nio.file.Paths;
import java.util.concurrent.TimeUnit;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.io.File;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.Alert;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;
import java.util.concurrent.TimeUnit;
//import io.appium.java_client.MobileElement;
///GET TEXT
import java.io.File;
//
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.Augmenter;
import com.google.common.collect.ImmutableMap;
import org.testng.Reporter;
///wait
import org.openqa.selenium.support.ui.WebDriverWait;
import java.time.Duration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Listeners(BaseCall.TestListener.class)
public class BaseCall {
public static final Logger LOGGER = LoggerFactory.getLogger(BaseCall.class);
public static AppiumDriver driver;
@BeforeClass
public void Android_setUp() throws MalformedURLException {
LOGGER.info("آماده سازی دستگاه");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UIAutomator2");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "R9WRC0DMSJJ");
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.NO_RESET, true);
driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(300, TimeUnit.SECONDS);
}
public static class TestListener implements ITestListener {
@Override
public void onTestStart(ITestResult result) {
LOGGER.info("Test Started: " + result.getName());
}
@Override
public void onTestSuccess(ITestResult result) {
LOGGER.info("Test Passed: " + result.getName());
}
@Override
public void onTestFailure(ITestResult result) {
LOGGER.info("Test Failed: " + result.getName());
// String screenshotBase64 = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BASE64);
captureScreenshot(result.getMethod().getMethodName());
}
private void captureScreenshot(String methodName1) {
try {
File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
String destDir = "path/to/sup/"; // Provide the correct destination directory path
String destFile = methodName1 + "_" + getCurrentTimestamp() + ".png";
String screenshotBase64 = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BASE64);
LoggingUtils.logBase64(screenshotBase64, methodName1);
//
File destination = new File(destDir + destFile);
FileUtils.copyFile(screenshotFile, destination);
// String screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BASE64);
LOGGER.info("Screenshot saved successfully: " + destination.getAbsolutePath());
} catch (IOException e) {
LOGGER.error("Failed to capture screenshot: " + e.getMessage());
}
}
private String getCurrentTimestamp() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
return dateFormat.format(new Date());
}
}
@AfterClass
public void tearDown() {
if (driver != null) {
// ((AndroidDriver) driver).closeApp();
driver.navigate().back();
driver.navigate().back();
driver.quit();
}
}
}



Comments