admin管理员组文章数量:1559110
目录
一,selenium模块的两种截图方法
二, snapshot(*args, **kwargs)
三,使用adb截图
总结
一,selenium模块的两种截图方法
- get_screenshot_as_file(filename)
参数filename为截图文件保存的绝对路径,如:driver.get_screenshot_as_file(r'e:/test_project/screenshot/test_01.png')
- save_screenshot(filename)
该方法与get_screenshot_as_file()不同的是,参数为文件名称,保存当前屏幕截图到当前脚本所在的文件,如:driver.save_screenshot('test_02.png')
上面两种方法使用举例,代码如下:
# -*- coding:utf-8 -*-
# @author: 给你一页白纸
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)
driver.implicitly_wait(8)
return driver
def login_opera(driver):
'''登录今日头条操作'''
try:
driver.find_element_by_id("com.ss.android.article.news:id/ciy").click() # 点击【我知道了】
driver.find_element_by_id("android:id/button1").click() # 点击权限管理-确定按钮
driver.find_element_by_xpath("//android.widget.tabwidget/android.widget.relativelayout[@index=3]").click() # 点击未登录
driver.find_element_by_id("com.ss.android.article.news:id/a1c").click() # 未登录页点击登录按钮
driver.find_element_by_id("com.ss.android.article.news:id/bfm").click() # 登录页点击“。。。”
driver.find_element_by_xpath("//android.widget.linearlayout[@index=4]").click() # 选择密码登录
driver.find_element_by_id("com.ss.android.article.news:id/c7").send_keys("xxxxxxxx") # 输入账号
driver.find_element_by_id("com.ss.android.article.news:id/ch").send_keys("xxxxxxxx") # 输入密码
driver.find_element_by_id("com.ss.android.article.news:id/a31").click() # 点击登录
except exception as e:
print("登录错误,原因是:{}".format(e))
# 报错时截图
driver.get_screenshot_as_file(r'e:\blog\blog_script\images\test_login_error_01.png')
driver.save_screenshot('test_login_error_02.png')
if __name__ == '__main__':
driver = android_driver()
login_opera(driver)
二, snapshot(*args, **kwargs)
这是airtest框架里面提供的api,使用前需要安装airtest库,并导入。官方文档参数说明如下:
filename – 保存截图的文件名,默认保存路径为 st.log_dir
中
msg – 截图文件的简短描述,将会被显示在报告页面中
quality – the image quality, integer in range [1, 99]
fiename指定保存截图的绝对路径,msg与quality可为空
# 安装airtest
pip install -u airtest
# 导入并使用
from airtest.core.api import *
snapshot(filename='e:\images\screenshot_01.png', message="j9九游会老哥俱乐部交流区首页截图")
三,使用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截图,速度较慢!
j9九游会老哥俱乐部交流区的版权声明:本文标题:【python appium】开展自动化测试(七)截图方法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727402924a1113059.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论