屏幕截图未通过侦听器类捕获

我正在尝试测试失败时进行屏幕截图,但它给出了空指针异常,请检查我的整个代码和帮助。 我使用的是其中存在屏幕截图方法的一个主要类,一个侦听器类以及一个testng.XML文件来运行侦听器。 请一些帮助我。

 package framework;
    public class SafeLaunch extends ExtentReportCreation {
        public static AndroidDriver<AndroidElement> driver;
        public static AppiumDriverLocalService service;

        public AppiumDriverLocalService startServer() {
            boolean flag = checkIfServerIsRunning(4723);
            if (!flag) {
                service = AppiumDriverLocalService.buildDefaultService();
                service.start();
            }
            return service;
        }

        public AndroidDriver<AndroidElement> capabilities() throws MalformedURLException {

            DesiredCapabilities capabilities = new DesiredCapabilities();
            // File appDir = new File("src");
            // File app = new File(appDir,"app-staging-debug.apk");

               capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");
            capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"4200f532f00d4400");
            // capabilities.setCapability(MobileCapabilityType.APP,app.getabsolutePath());

            capabilities.setCapability("appPackage","versionx.safeChild");
            capabilities.setCapability("appactivity","versionx.safeChild.SplashScreenactivity");

            capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME,"uiAutomator2");
            capabilities.setCapability("newCommandTimeout",100000);

            capabilities.setCapability("--session-override",true);
            capabilities.setCapability(MobileCapabilityType.NO_RESET,true);
            driver = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
            driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

            return driver;
        }

        public static void getScreenshot(String s) throws IOException {
            File srcfile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

            //FileUtils.copyFile(srcfile,new File("C:\\Users\\Developer\\eclipse-workspace\\SafeChildAutomate\\screenshots\\" + s + ".png"));
            FileHandler.copy(srcfile,new File("C:\\Users\\Developer\\eclipse-workspace\\SafeChildAutomate\\screenshots\\" + s + ".png"));
        }

        public static boolean checkIfServerIsRunning(int port) {
            boolean IsServerRunning = false;
            ServerSocket serverSocket;
            try {
                serverSocket = new ServerSocket(port);
                serverSocket.close();
            } catch (IOException e) {
                IsServerRunning = true;
            } finally {
                `serverSocket` = null;
            }
    return  IsServerRunning;
        }

    }
snailtoto 回答:屏幕截图未通过侦听器类捕获

下面是侦听器类:-

打包资源;

i

mport java.io.IOException;

import org.openqa.selenium.WebDriver;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;

import framework.SafeLaunch;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;


public class Listeners implements ITestListener {


    public void onTestStart(ITestResult result) {
        // TODO Auto-generated method stub

    }

    public void onTestSuccess(ITestResult result) {
        // TODO Auto-generated method stub

    }

    public  void onTestFailure(ITestResult result) {

        String s = result.getName();

        try {
            SafeLaunch.getScreenshot(s);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

    public void onTestSkipped(ITestResult result) {
        // TODO Auto-generated method stub

    }

    public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
        // TODO Auto-generated method stub

    }

    public void onStart(ITestContext context) {
        // TODO Auto-generated method stub

    }

    public void onFinish(ITestContext context) {
        // TODO Auto-generated method stub

    }

}
本文链接:https://www.f2er.com/3102360.html

大家都在问