ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

app自动化测试之截图方法

2020-09-03 22:01:13  阅读:473  来源: 互联网

标签:截图 app time driver find sleep 自动化 android id


一,selenium模块的两种方法

  • get_screenshot_as_file(filename)
    参数filename为截图路径,如:
driver.get_screenshot_as_file(r'E:/test_project/screenshot/test_01.png')
  • save_screenshot(filename)
    保存当前屏幕截图到当前脚本所在的文件,如:
driver.save_screenshot('test_02.png')

上面两种方法使用举例,代码如下:

# -*- coding:utf-8 -*-

import time
from appium import webdriver

def android_driver():
    desired_caps = {
        "platformName": "Android",
        "platformVersion": "10",
        "deviceName": "PCT_AL10",
        "appPackage": "com.ss.android.article.news",
        "appActivity": ".activity.MainActivity",
        "automationName": "uiautomator2",
        "unicodeKeyboard": True,
        "resetKeyboard": True,
    }
    # 启动app
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
    return driver

def login_opera(driver):
    '''登录今日头条操作'''
    driver.find_element_by_id("com.ss.android.article.news:id/ciy").click() # 点击【我知道了】
    time.sleep(1)
    driver.find_element_by_id("android:id/button1").click() # 点击权限管理-确定按钮
    time.sleep(1)
    driver.find_element_by_xpath("//android.widget.TabWidget/android.widget.RelativeLayout[@index=3]").click() # 点击未登录
    time.sleep(1)
    driver.find_element_by_id("com.ss.android.article.news:id/a1c").click() # 未登录页点击登录按钮
    time.sleep(1)
    driver.find_element_by_id("com.ss.android.article.news:id/bfm").click() # 登录页点击“。。。”
    time.sleep(1)
    driver.find_element_by_xpath("//android.widget.LinearLayout[@index=4]").click() # 选择密码登录
    time.sleep(1)
    driver.find_element_by_id("com.ss.android.article.news:id/c7").send_keys("18768124236")   # 输入账号
    time.sleep(1)
    driver.find_element_by_id("com.ss.android.article.news:id/ch").send_keys("liufeiyu123456")   # 输入密码
    time.sleep(1)
    driver.find_element_by_id("com.ss.android.article.news:id/a31").click() # 点击登录
    time.sleep(1)
    # 登录后页面截图并保存
    driver.get_screenshot_as_file(r'E:\blog\blog_script\images\test_01.png')
    driver.save_screenshot('test_02.png')

if __name__ == '__main__':
    driver = android_driver()
    login_opera(driver)

二,snapshot(filename)

这是Airtest框架里面提供的api,使用前需要安装airtest库,并导入

# 安装airtest
pip install -U airtest

# 导入并使用
from airtest.core.api import *
snapshot('screenshot_01.png')

三,使用adb截图

  • 首先,进行截图,命令如下
    adb shell screencap -p +手机上图片保存路径,如:adb shell screencap -p /sdcard/image.png
  • 然后,将截图pull到电脑上,命令如下:
    adb pull +手机图片路径 +保存到电脑的路径,如:
    adb pull /sdcard/image.png C:\Users\xiaoqq\Desktop\test_project

    此时我们在电脑相应的目录里就能找到该图片。
    用appium做appUI自动化测试就使用一中的方法,使用Airtest或Poco做appUI自动化的测试就使用第二种方法。不推荐使用adb截图,速度较慢!

标签:截图,app,time,driver,find,sleep,自动化,android,id
来源: https://www.cnblogs.com/lfr0123/p/13610884.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有