*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