一,selenium模块的api方法
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截图,速度较慢!