Appium测试混合应用失败后截图注意事项

Appium 实现案例测试失败后自动截图功能跟Webdriver一样,基于 TestNG 需要继承TestListenerAdapter,具体实现可以参考下文:


http://www.cnblogs.com/lincj/p/6007128.html

package com.fsssc.htsgl.utils;
import io.appium.java_client.android.AndroidDriver;

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.WebElement;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import com.fc.boxapk.ApkBoxOperation;

public class ScreenShotListener extends TestListenerAdapter {
    @Override
    public void onTestFailure(ITestResult tr) {
         //安卓程序的操作类 
        ApkBoxOperation apkRemoteControl = ApkBoxOperation.getInstance();
        //监控截图的driver
        AndroidDriver<WebElement> driver = apkRemoteControl.driver;
        // 截图文件夹
        File path = new File("screenshots");
        //截图位置及文件名  名称为 标识 + 类名 + 方法名
        String name = path.getAbsolutePath() + File.separator + MysqlUtils.executionFlag+"_"+MysqlUtils.exeClassName +"."+ tr.getMethod().getMethodName() + ".png";
        // 
        File screenShot = driver.getScreenshotAs(OutputType.FILE);
        try {
            FileUtils.copyFile(screenShot, new File(name));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在实现这个例子的过程中,有的案例失败会截图,有的一直卡在

	File screenShot = driver.getScreenshotAs(OutputType.FILE); 
这句代码上,对比能够截图成功的案例和不能截图成功的案例发现在截图前一定要把driver切换为native模式的(driver.context("NATIVE_APP")这种方法),因为实例化driver的时候使用的是AndroidDriver。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值