当执行这个函数都进行了什么操作:
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原始截屏数据