wda.Client.sceenshoot()代码分析

当执行这个函数都进行了什么操作:
1. 在手机截屏
2. 写入项目目录对应文件名(png)
3. 并返回一个截屏图片的十六进制字节串

    def screenshot(self, png_filename=None):
        """
        Screenshot with PNG format【PNG格式的截屏】
        Args:png_filename(string): optional, save file name【传入一个图片名称的参数】
        Returns:png raw data【返回png原始数据】
        Raises:WDAError
        """
        value = self.http.get('screenshot').value
        # 是一个base64编码的数据
        # 上面相当于value = HTTPClient('http://localhost:8100').get('screenshot').value get方法找不到 todo
        raw_value = base64.b64decode(value)
        # 通过base64解码得到原始数据
        png_header = b"\x89PNG\r\n\x1a\n"
        # 以字节串b’\x89PNG\r\n\x1a\n’开头表示是png格式,可移植网络图形格式(Portable Network Graphic Format)

        if not raw_value.startswith(png_header):
            # 图片的raw_value必须是以png_header开头,即必须是png格式,否则会报错
            raise WDAError(-1, "screenshot png format error")
            # 报错形式:wda.WDAError: WDAError(status=-1, value=screenshot png format error)

        if png_filename:
            with open(png_filename, 'wb') as f:
                f.write(raw_value)
                # 在执行函数的过程中,将截屏数据存到目录中对应图片名称(传的参)

        # raw_value:b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x02\xee\x00...
        return raw_value  # 返回一个png原始截屏数据
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,485评论 0 5
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,765评论 25 709
  • 我是谁 越长大越孤单 不会说话,不会说笑 也许我还会笑 可那并不能代表我的全部 曾经的开心变成了如今的忧郁 我也开...
    皆非_lx阅读 258评论 3 4
  • 第一章 数字足迹 指一个特定的人在互联网上的活动信息 多任务处理 多任务处理是指32位windows操作系统中,多...
    Chosen_6214阅读 834评论 0 0
  • 郭相麟 当人们习惯于某种行为模式时,静下心来会发现行为模式会影响自己的生活质量,看到家里一大堆可用可不用的生活...
    郭相麟阅读 783评论 0 0