【问题标题】:How to take Screenshot in APPIUM if screenshot is RESTRICTED in Native App如果本机应用程序中的屏幕截图受到限制,如何在 APPIUM 中进行屏幕截图
【发布时间】:2019-02-14 18:47:03
【问题描述】:

我正在通过 Java 和 Appium 对一个本机应用程序进行自动化处理。该应用程序中的屏幕截图受到限制,因此我无法截取屏幕截图,也无法通过 UIAutomator 检查元素。有什么办法可以解决这个问题。

【问题讨论】:

  • 能否请您在截屏时发布appium日志?

标签: appium screenshot appium-android android-uiautomator uiautomatorviewer


【解决方案1】:

尝试用java的方式截屏而不是apache commons

import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;

public void takeScreenShot(String fileName) {

    try {
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Rectangle screenRectangle = new Rectangle(screenSize);
        Robot robot = new Robot();
        BufferedImage image = robot.createScreenCapture(screenRectangle);
        ImageIO.write(image, "png", new File(fileName));
        System.out.println("saved.."+fileName);

    } catch (Exception e) {
        e.printStackTrace();
    }

【讨论】:

  • 我在运行appium脚本时必须截取APP截图。这段代码行不通
【解决方案2】:

试试这个方法,当你想截图的时候调用它,这将创建截图,并将名称传递给你的项目目录中的方法。

public void takeScreenshot(String screenShotName) {

    File file  = ((TakesScreenshot)appDriver).getScreenshotAs(OutputType.FILE);
    try {
        FileUtils.copyFile(file, new File(screenShotName + ".jpg"));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

这里提供了一些相同的解释。看看这是否有帮助

https://developers.perfectomobile.com/display/TT/Capturing+screen+shots+using+Appium

【讨论】:

    猜你喜欢
    • 2020-09-10
    • 2011-03-18
    • 2011-05-08
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    相关资源
    最近更新 更多