ha4t.api module
此模块包含UI自动化操作接口 提供操作如:点击、滑动、输入、OCR识别等
- click(*args, duration: float = 0.1, **kwargs) None [源代码]
点击操作,支持多种定位方式 用法:
- Example:
>>> click((100,100)) # 坐标点击 >>> click("TEXT") # 文字点击, OCR识别 >>> click(image="path/to/image.png") # 图像匹配点击 >>> click(**kwargs) # uiautomator2/wda的点击(适合原生app,速度快,非H5应用建议使用)
- exists(*args, **kwargs) bool [源代码]
判断元素是否存在 :param args: 可变参数,用于不同的定位方式 :param kwargs: 关键字参数,用于uiautomator2/wda的定位 :return: 元素是否存在
- Example:
>>> exists((100,100)) # 坐标点击 >>> exists("TEXT") # 文字点击, OCR识别 >>> exists(image="path/to/image.png") # 图像匹配点击 >>> exists(**kwargs) # uiautomator2/wda的点击(适合原生app,速度快,非H5应用建议使用)
- wait(*args, timeout: float = 5, reverse: bool = False, raise_error: bool = True, use_in_text: bool = False, **kwargs)[源代码]
等待元素出现,支持多种定位方式 用法: 1. wait("TEXT") # 文字等待, OCR识别 2. web等待 3. uiautomator2/wda的等待(适合原生app,速度快,非H5应用建议使用) :param use_in_text: 是否在文本中使用 :param raise_error: 是否抛出错误 :param reverse: 反向等待 :param args: 可变参数,用于不同的定位方式 :param timeout: 等待超时时间,默认为CF.FIND_TIMEOUT :param kwargs: 关键字参数,用于uiautomator2/wda的定位 :return: 元素是否出现
- Example:
>>> wait("TEXT") # 文字等待, OCR识别 >>> wait(image="path/to/image.png") # 图像匹配等待 >>> wait(**kwargs) # uiautomator2/wda的等待(适合原生app,速度快,非H5应用建议使用)
- swipe(p1, p2, duration=None, steps=None)[源代码]
uiautomator2/wda的滑动操作 :param p1: 起始位置,(x, y)坐标或比例 :param p2: 结束位置,(x, y)坐标或比例 :param duration: 滑动持续时间 :param steps: 滑动步数,1步约5ms,如果设置则忽略duration
- Example:
>>> swipe((0.5, 0.8), (0.5, 0.3)) # 从中间向上滑动 >>> swipe((0.2, 0.5), (0.8, 0.5), duration=0.5) # 从左向右滑动
- swipe_up(duration: float = 0.2, steps: int | None = None) None [源代码]
向上滑动
- 参数:
duration -- 滑动持续时间
steps -- 滑动步数
- Example:
>>> swipe_up() # 默认持续时间向上滑动 >>> swipe_up(duration=0.5, steps=10) # 自定义持续时间和步数向上滑动
- swipe_down(duration: float = 0.2, steps: int | None = None) None [源代码]
向下滑动
- 参数:
duration -- 滑动持续时间
steps -- 滑动步数
- Example:
>>> swipe_down() # 默认持续时间向下滑动 >>> swipe_down(duration=0.5, steps=10) # 自定义持续时间和步数向下滑动
- swipe_left(duration: float = 0.1, steps: int | None = None) None [源代码]
向左滑动
- 参数:
duration -- 滑动持续时间
steps -- 滑动步数
- Example:
>>> swipe_left() # 默认持续时间向左滑动 >>> swipe_left(duration=0.5, steps=10) # 自定义持续时间和步数向左滑动
- swipe_right(duration: float = 0.1, steps: int | None = None) None [源代码]
向右滑动
- 参数:
duration -- 滑动持续时间
steps -- 滑动步数
- Example:
>>> swipe_right() # 默认持续时间向右滑动 >>> swipe_right(duration=0.5, steps=10) # 自定义持续时间和步数向右滑动
- screenshot(filename: str | None = None) <MagicMock name='mock.Image.Image' id='140002791260432'> [源代码]
截图并可选保存到本地
- 参数:
filename -- 保存截图的文件名,如果为None则不保存
- 返回:
截图的PIL.Image对象
- Example:
>>> img = screenshot() # 截图并不保存 >>> screenshot("screenshot.png") # 截图并保存为文件
- pull_file(src_path: List[str] | str, filename: str) None [源代码]
从app本地路径下载文件到本地
- 参数:
src_path -- 路径列表或字符串,ios为Documents/xxx,android为/data/data/xxx/files/xxx
filename -- 本地文件名
- Example:
>>> pull_file("Documents/file.txt", "local_file.txt") # 从app下载文件
- upload_files(src_path: str) None [源代码]
上传文件或文件夹到设备
- 参数:
src_path -- 源文件或文件夹路径,可以是列表或字符串
- 抛出:
Exception -- 如果上传过程中出现错误
- Example:
>>> upload_files("local_file.txt") # 上传单个文件 >>> upload_files("my_folder") # 上传文件夹
- delete_file(file_path: List[str] | str) None [源代码]
删除设备上的文件或文件夹
- 参数:
file_path -- 要删除的文件或文件夹路径,可以是列表或字符串
- 抛出:
Exception -- 如果删除过程中出现错误
- Example:
>>> delete_file("Documents/file.txt") # 删除单个文件 >>> delete_file(["Documents", "my_folder"]) # 删除文件夹
- clear_app(app_name: str = None)[源代码]
清除应用数据 > 仅支持Android平台 :param app_name: 应用名称 :Example:
>>> clear_app("com.example.app") # 清除应用数据
- 返回:
- start_app(app_name: str | None = '', activity: str | None = '') None [源代码]
启动应用程序
- 参数:
app_name -- 应用程序名称,如果为None则使用配置中的默认值
activity -- Android应用的活动名称,如果为None则使用配置中的默认值
- 抛出:
ValueError -- 如果是Android平台且activity为None
- Example:
>>> start_app("com.example.app") # 启动指定应用