0


Aibote python 版本最全的介绍文档,支持 web windows 和 Android

Aibote.py 使用方法说明

软件地址

http://www.aibote.net

下载安装 Aibote.py

pip install AiBot.py

使用 AndroidBot 编写脚本

# 1. 导入 AndroidBotMain 类from AiBot import AndroidBotMain

# 2. 自定义一个脚本类,继承 AndroidBotMainclassCustomAndroidScript(AndroidBotMain):# 3. 设置等待参数# 3.1 设置等待时间
    wait_timeout =3# 3.2 设置重试间隔时长
    interval_timeout =0.5# 4. 设置日志等级
    log_level ="INFO"# "DEBUG"# 5. 设置方法超时是否抛出异常
    raise_err =False# True# 6. 重写方法,编写脚本# 注意:此方法是脚本执行入口defscript_main(self):# 6.1 API 演示# 注意:Python 版本支持的 Api 与 Nodejs 基本相同# 教程中仅演示部分 Api,更多 Api 请自行探索,所有 Api 均包含详细的参数要求和返回值,请自行查看。# 截图
        self.save_screenshot("xxx.png")# 获取坐标点颜色
        self.get_color((100,100))# 查找图片
        self.find_image("xxx.png")# 点击坐标
        self.click((100,100))# 滑动
        self.swipe((100,100),(200,200),3)# 7. 执行脚本,Pycharm 中,直接右键执行if __name__ =='__main__':# 注意:此处监听的端口号,必须和手机端的脚本端口号一致;# 监听 3333 号端口
    CustomAndroidScript.execute(3333)

教程中仅演示部分 Api,更多 Api 请自行探索,所有 Api 均包含详细的参数要求和返回值,请自行查看。

使用 WinBot 编写脚本

# 1. 导入 WinBotMain 类from AiBot import WinBotMain

# 2. 自定义一个脚本类,继承 WinBotMainclassCustomWinScript(WinBotMain):# 3. 设置等待参数# 3.1 设置等待时间
    wait_timeout =3# 3.2 设置重试间隔时长
    interval_timeout =0.5# 4. 设置日志等级
    log_level ="INFO"# "DEBUG"# 5. 设置方法超时是否抛出异常
    raise_err =False# True# 6. 重写方法,编写脚本# 注意:此方法是脚本执行入口defscript_main(self):# 6.1 API 演示# 注意:Python 版本支持的 Api 与 Nodejs 基本相同# 教程中仅演示部分 Api,更多 Api 请自行探索,所有 Api 均包含详细的参数要求和返回值,请自行查看。# 查询所有窗口句柄
        result = self.find_windows()print(result)# ["1050010", "1050011", "1050012"]# 查询指定窗口句柄
        result = self.find_window(window_name="Ai-Bot 2群等9个会话")print(result)# "1050010"# 7. 执行脚本,Pycharm 中,直接右键执行if __name__ =='__main__':# 启动脚本,监听 6666 号端口# local=True 时,是本地运行脚本,会自动启动 WindowsDriver.exe 驱动;# 在远端部署脚本时,请设置 local=False,手动启动 WindowsDriver.exe,启动 WindowsDriver.exe 时需指定远端 IP 或端口号;

    CustomWinScript.execute(6666, local=True)

教程中仅演示部分 Api,更多 Api 请自行探索,所有 Api 均包含详细的参数要求和返回值,请自行查看。

使用 WebBot 编写脚本

import time

# 1. 导入 WebBotMain 类from AiBot import WebBotMain

# 2. 自定义一个脚本类,继承 WebBotMainclassCustomWebScript(WebBotMain):# 3. 设置等待参数# 3.1 设置等待时间
    wait_timeout =3# 3.2 设置重试间隔时长
    interval_timeout =0.5# 4. 设置日志等级
    log_level ="INFO"# "DEBUG"# 5. 设置方法超时是否抛出异常
    raise_err =False# True# 6. 重写方法,编写脚本# 注意:此方法是脚本执行入口defscript_main(self):# 6. API 演示# 注意:Python 版本支持的 Api 与 Nodejs 基本相同# 教程中仅演示部分 Api,更多 Api 请自行探索,所有 Api 均包含详细的参数要求和返回值,请自行查看。

        self.goto("https://www.baidu.com")
        time.sleep(3)
        self.new_page("https://www.qq.com")
        time.sleep(3)

        result = self.execute_script('(()=>"aibote rpa")()')print(result)# aibote rpa# 7. 执行脚本,Pycharm 中,直接右键执行if __name__ =='__main__':# 启动脚本,监听 9999 号端口# 默认使用 Chrome 浏览器# local=True 时,是本地运行脚本,会自动启动 WebDriver.exe 驱动;# 在远端部署脚本时,请设置 local=False,手动启动 WebDriver.exe,启动 WebDriver.exe 时需指定远端 IP 或端口号;# 如本地部署脚本,需要传递 WebDriver 启动参数时,参考下面方式,如不需传递启动参数,则忽略:
    driver_params ={"browserName":"chrome","debugPort":0,"userDataDir":"./UserData","browserPath":None,"argument":None,}

    CustomWebScript.execute(9999, local=True, driver_params=driver_params)

教程中仅演示部分 Api,更多 Api 请自行探索,所有 Api 均包含详细的参数要求和返回值,请自行查看。

AndroidBot开发手册

图色

defsave_screenshot(image_name:str, region: _Region =None, algorithm: _Algorithm =None)-> Optional[str]:"""
    保存截图,返回图片地址(手机中)或者 None
    :param image_name: 图片名称,保存在手机 /storage/emulated/0/Android/data/com.aibot.client/files/ 路径下;
    :param region: 截图区域,默认全屏;
    :param algorithm: 处理截图所用算法和参数,默认保存原图;
    :return:

    # 区域相关参数
    region = (0, 0, 0, 0) 按元素顺序分别代表:起点x、起点y、终点x、终点y,最终得到一个矩形。
    # 算法相关参数
    algorithm = (0, 0, 0) # 按元素顺序分别代表:algorithm_type 算法类型、threshold 阈值、max_val 最大值。
    threshold 和 max_val 同为 255 时灰度处理.
    0   THRESH_BINARY      算法,当前点值大于阈值 threshold 时,取最大值 max_val,否则设置为 0;
    1   THRESH_BINARY_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则设置为最大值 max_val;
    2   THRESH_TOZERO      算法,当前点值大于阈值 threshold 时,不改变,否则设置为 0;
    3   THRESH_TOZERO_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则不改变;
    4   THRESH_TRUNC       算法,当前点值大于阈值 threshold 时,设置为阈值 threshold,否则不改变;
    5   ADAPTIVE_THRESH_MEAN_C      算法,自适应阈值;
    6   ADAPTIVE_THRESH_GAUSSIAN_C  算法,自适应阈值;
    """defsave_element_screenshot(image_name, xpath)-> Optional[str]:"""
    保存元素截图,返回图片地址(手机中)或者 None
    :return:
    """defget_color(point: _Point_Tuple)-> Optional[str]:"""
    获取指定坐标点的色值,返回色值字符串(#008577)或者 None
    :param point: 坐标点;
    :return:
    """

找图

deffind_color(color:str, sub_colors: _SubColors =None, region: _Region =None, similarity:float=0.9,
               wait_time:float=None, interval_time:float=None, raise_err:bool=None)-> Optional[_Point]:"""
    获取指定色值的坐标点,返回坐标或者 None
    :param color: 颜色字符串,必须以 # 开头,例如:#008577;
    :param sub_colors: 辅助定位的其他颜色;
    :param region: 在指定区域内找色,默认全屏;
    :param similarity: 相似度,0-1 的浮点数,默认 0.9;
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :param raise_err: 超时是否抛出异常;
    :return:

    # 区域相关参数
    region = (0, 0, 0, 0) 按元素顺序分别代表:起点x、起点y、终点x、终点y,最终得到一个矩形。
    # 算法相关参数
    algorithm = (0, 0, 0) # 按元素顺序分别代表:algorithm_type 算法类型、threshold 阈值、max_val 最大值。
    threshold 和 max_val 同为 255 时灰度处理.
    0   THRESH_BINARY      算法,当前点值大于阈值 threshold 时,取最大值 max_val,否则设置为 0;
    1   THRESH_BINARY_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则设置为最大值 max_val;
    2   THRESH_TOZERO      算法,当前点值大于阈值 threshold 时,不改变,否则设置为 0;
    3   THRESH_TOZERO_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则不改变;
    4   THRESH_TRUNC       算法,当前点值大于阈值 threshold 时,设置为阈值 threshold,否则不改变;
    5   ADAPTIVE_THRESH_MEAN_C      算法,自适应阈值;
    6   ADAPTIVE_THRESH_GAUSSIAN_C  算法,自适应阈值;
    """deffind_image(image_name, region: _Region =None, algorithm: _Algorithm =None, similarity:float=0.9,
               wait_time:float=None, interval_time:float=None, raise_err:bool=None)-> Optional[_Point]:"""
    寻找图片坐标,在当前屏幕中寻找给定图片中心点的坐标,返回坐标或者 None
    :param image_name: 图片名称(手机中);
    :param region: 从指定区域中找图,默认全屏;
    :param algorithm: 处理屏幕截图所用的算法,默认原图,注意:给定图片处理时所用的算法,应该和此方法的算法一致;
    :param similarity: 相似度,0-1 的浮点数,默认 0.9;
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :param raise_err: 超时是否抛出异常;
    :return:

    # 区域相关参数
    region = (0, 0, 0, 0) 按元素顺序分别代表:起点x、起点y、终点x、终点y,最终得到一个矩形。
    # 算法相关参数
    algorithm = (0, 0, 0) # 按元素顺序分别代表:algorithm_type 算法类型、threshold 阈值、max_val 最大值。
    threshold 和 max_val 同为 255 时灰度处理.
    0   THRESH_BINARY      算法,当前点值大于阈值 threshold 时,取最大值 max_val,否则设置为 0;
    1   THRESH_BINARY_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则设置为最大值 max_val;
    2   THRESH_TOZERO      算法,当前点值大于阈值 threshold 时,不改变,否则设置为 0;
    3   THRESH_TOZERO_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则不改变;
    4   THRESH_TRUNC       算法,当前点值大于阈值 threshold 时,设置为阈值 threshold,否则不改变;
    5   ADAPTIVE_THRESH_MEAN_C      算法,自适应阈值;
    6   ADAPTIVE_THRESH_GAUSSIAN_C  算法,自适应阈值;
    """deffind_image_by_opencv(image_name, region: _Region =None, algorithm: _Algorithm =None,
                         similarity:float=0.9, wait_time:float=None, interval_time:float=None,
                         raise_err:bool=None)-> Optional[_Point]:"""
    寻找图片坐标,在当前屏幕中寻找给定图片中心点的坐标,返回图片坐标或者 None
    与 .find_image() 基本一致,采用 OpenCV 算法
    :param image_name: 图片名称(手机中);
    :param region: 从指定区域中找图,默认全屏;
    :param algorithm: 处理屏幕截图所用的算法,默认原图,注意:给定图片处理时所用的算法,应该和此方法的算法一致;
    :param similarity: 相似度,0-1 的浮点数,默认 0.9;
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:

    # 区域相关参数
    region = (0, 0, 0, 0) 按元素顺序分别代表:起点x、起点y、终点x、终点y,最终得到一个矩形。
    # 算法相关参数
    algorithm = (0, 0, 0) # 按元素顺序分别代表:algorithm_type 算法类型、threshold 阈值、max_val 最大值。
    threshold 和 max_val 同为 255 时灰度处理.
    0   THRESH_BINARY      算法,当前点值大于阈值 threshold 时,取最大值 max_val,否则设置为 0;
    1   THRESH_BINARY_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则设置为最大值 max_val;
    2   THRESH_TOZERO      算法,当前点值大于阈值 threshold 时,不改变,否则设置为 0;
    3   THRESH_TOZERO_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则不改变;
    4   THRESH_TRUNC       算法,当前点值大于阈值 threshold 时,设置为阈值 threshold,否则不改变;
    5   ADAPTIVE_THRESH_MEAN_C      算法,自适应阈值;
    6   ADAPTIVE_THRESH_GAUSSIAN_C  算法,自适应阈值;
    """deffind_images_by_opencv(image_name, region: _Region =None, algorithm: _Algorithm =None,
                          similarity:float=0.9, multi:int=1, wait_time:float=None,
                          interval_time:float=None, raise_err:bool=None)-> List[_Point]:"""
    寻找图片坐标,在当前屏幕中寻找给定图片中心点的坐标,返回坐标列表
    与 .find_image() 基本一致,采用 OpenCV 算法,并且可找多个目标。
    :param image_name: 图片名称(手机中);
    :param region: 从指定区域中找图,默认全屏;
    :param algorithm: 处理屏幕截图所用的算法,默认原图,注意:给定图片处理时所用的算法,应该和此方法的算法一致;
    :param similarity: 相似度,0-1 的浮点数,默认 0.9;
    :param multi: 目标数量,默认为 1,找到 1 个目标后立即结束;
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:

    # 区域相关参数
    region = (0, 0, 0, 0) 按元素顺序分别代表:起点x、起点y、终点x、终点y,最终得到一个矩形。
    # 算法相关参数
    algorithm = (0, 0, 0) # 按元素顺序分别代表:algorithm_type 算法类型、threshold 阈值、max_val 最大值。
    threshold 和 max_val 同为 255 时灰度处理.
    0   THRESH_BINARY      算法,当前点值大于阈值 threshold 时,取最大值 max_val,否则设置为 0;
    1   THRESH_BINARY_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则设置为最大值 max_val;
    2   THRESH_TOZERO      算法,当前点值大于阈值 threshold 时,不改变,否则设置为 0;
    3   THRESH_TOZERO_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则不改变;
    4   THRESH_TRUNC       算法,当前点值大于阈值 threshold 时,设置为阈值 threshold,否则不改变;
    5   ADAPTIVE_THRESH_MEAN_C      算法,自适应阈值;
    6   ADAPTIVE_THRESH_GAUSSIAN_C  算法,自适应阈值;
    """deffind_dynamic_image(interval_ti:int, region: _Region =None, wait_time:float=None,
                       interval_time:float=None, raise_err:bool=None)-> List[_Point]:"""
    找动态图,对比同一张图在不同时刻是否发生变化,返回坐标列表
    :param interval_ti: 前后时刻的间隔时间,单位毫秒;
    :param region: 在指定区域找图,默认全屏;
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:

    # 区域相关参数
    region = (0, 0, 0, 0) 按元素顺序分别代表:起点x、起点y、终点x、终点y,最终得到一个矩形。
    """

坐标操作

defclick(point: _Point_Tuple, offset_x:float=0, offset_y:float=0)->bool:"""
    点击坐标
    :param point: 坐标;
    :param offset_x: 坐标 x 轴偏移量;
    :param offset_y: 坐标 y 轴偏移量;
    :return:
    """defdouble_click(point: _Point_Tuple, offset_x:float=0, offset_y:float=0)->bool:"""
    双击坐标
    :param point: 坐标;
    :param offset_x: 坐标 x 轴偏移量;
    :param offset_y: 坐标 y 轴偏移量;
    :return:
    """deflong_click(point: _Point_Tuple, duration:float, offset_x:float=0, offset_y:float=0)->bool:"""
    长按坐标
    :param point: 坐标;
    :param duration: 按住时长,单位秒;
    :param offset_x: 坐标 x 轴偏移量;
    :param offset_y: 坐标 y 轴偏移量;
    :return:
    """defswipe(start_point: _Point_Tuple, end_point: _Point_Tuple, duration:float)->bool:"""
    滑动坐标
    :param start_point: 起始坐标;
    :param end_point: 结束坐标;
    :param duration: 滑动时长,单位秒;
    :return:
    """defgesture(gesture_path: List[_Point_Tuple], duration:float)->bool:"""
    执行手势
    :param gesture_path: 手势路径,由一系列坐标点组成
    :param duration: 手势执行时长, 单位秒
    :return:
    """

OCR

defget_text(region: _Region =None, scale:float=1.0)-> List[str]:"""
    通过 OCR 识别屏幕中的文字,返回文字列表
    :param region: 识别区域,默认全屏;
    :param scale: 图片缩放率,默认为 1.0,1.0 以下为缩小,1.0 以上为放大;
    :return:
    """deffind_text(text:str, region: _Region =None, scale:float=1.0)-> List[_Point]:"""
    查找文字所在的坐标,返回坐标列表(坐标是文本区域中心位置)
    :param text: 要查找的文字;
    :param region: 识别区域,默认全屏;
    :param scale: 图片缩放率,默认为 1.0,1.0 以下为缩小,1.0 以上为放大;
    :return:
    """

元素操作

defget_element_rect(xpath:str, wait_time:float=None, interval_time:float=None,
                     raise_err:bool=None)-> Optional[Tuple[_Point, _Point]]:"""
    获取元素位置,返回元素区域左上角和右下角坐标
    :param xpath: xpath 路径
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:
    """defget_element_desc(xpath:str, wait_time:float=None, interval_time:float=None,
                     raise_err:bool=None)-> Optional[str]:"""
    获取元素描述
    :param xpath: xpath 路径
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:
    """defget_element_text(xpath:str, wait_time:float=None, interval_time:float=None,
                     raise_err:bool=None)-> Optional[str]:"""
    获取元素文本
    :param xpath: xpath 路径
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:
    """defset_element_text(xpath:str, text:str, wait_time:float=None, interval_time:float=None,
                     raise_err:bool=None)->bool:"""
    设置元素文本
    :param xpath:
    :param text:
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:
    """defclick_element(xpath:str, wait_time:float=None, interval_time:float=None,
                  raise_err:bool=None)->bool:"""
    点击元素
    :param xpath:
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:
    """defclick_any_elements(xpath_list: List[str], wait_time:float=None, interval_time:float=None,
                       raise_err:bool=None)->bool:"""
    遍历点击列表中的元素,直到任意一个元素返回 True
    :param xpath_list: xpath 列表
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:
    """defscroll_element(xpath:str, direction:int=0)->bool:"""
    滚动元素,0 向上滑动,1 向下滑动
    :param xpath: xpath 路径
    :param direction: 滚动方向,0 向上滑动,1 向下滑动
    :return:
    """defelement_not_exists(xpath:str, wait_time:float=None, interval_time:float=None,
                       raise_err:bool=None)->bool:"""
    元素是否不存在
    :param xpath: xpath 路径
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:
    """defelement_exists(xpath:str, wait_time:float=None, interval_time:float=None,
                   raise_err:bool=None)->bool:"""
    元素是否存在
    :param xpath: xpath 路径
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:
    """defany_elements_exists(xpath_list: List[str], wait_time:float=None, interval_time:float=None,
                        raise_err:bool=None)-> Optional[str]:"""
    遍历列表中的元素,只要任意一个元素存在就返回 True
    :param xpath_list: xpath 列表
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :param raise_err: 超时是否抛出异常;
    :return:
    """defelement_is_selected(xpath:str)->bool:"""
    元素是否存在
    :param xpath: xpath 路径
    :return:
    """defclick_element_by_slide(xpath, distance:int=1000, duration:float=0.5, direction:int=1,
                           count:int=999, end_flag_xpath:str=None, wait_time:float=600,
                           interval_time:float=0.5, raise_err:bool=None)->bool:"""
    滑动列表,查找并点击指定元素
    :param xpath:
    :param distance: 滑动距离,默认 1000
    :param duration: 滑动时间,默认 0.5 秒
    :param direction: 滑动方向,默认为 1; 1=上滑,2=下滑
    :param count: 滑动次数
    :param end_flag_xpath: 结束标志 xpath
    :param wait_time: 等待时间,默认 10 分钟
    :param interval_time: 轮询间隔时间,默认 0.5 秒
    :param raise_err: 超时是否抛出异常;
    :return:
    """

文件传输

defpush_file(origin_path:str, to_path:str)->bool:"""
    将电脑文件传输到手机端
    :param origin_path: 源文件路径
    :param to_path: 目标存储路径
    :return:

    ex:
    origin_path: /
    to_path: /storage/emulated/0/Android/data/com.aibot.client/files/code479259.png
    """defpull_file(remote_path:str, local_path:str)->bool:"""
    将手机文件传输到电脑端
    :param remote_path: 手机端文件路径
    :param local_path: 电脑本地文件存储路径
    :return:

    ex:
    remote_path: /storage/emulated/0/Android/data/com.aibot.client/files/code479259.png
    local_path: /
    """

设备操作

defstart_app(name:str, wait_time:float=None, interval_time:float=None)->bool:"""
    启动 APP
    :param name: APP名字或者包名
    :param wait_time: 等待时间,默认取 .wait_timeout
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout
    :return:
    """defget_device_ip()->str:"""
    获取设备IP地址
    :return:
    """defget_android_id()->str:"""
    获取 Android 设备 ID
    :return:
    """defget_window_size()-> Dict[str,float]:"""
    获取屏幕大小
    :return:
    """defget_image_size(image_path)-> Dict[str,float]:"""
    获取图片大小
    :param image_path: 图片路径;
    :return:
    """defshow_toast(text:str)->bool:"""
    Toast 弹窗
    :param text: 弹窗内容;
    :return:
    """defsend_keys(text:str)->bool:"""
    发送文本,需要打开 AiBot 输入法
    :param text: 文本内容
    :return:
    """defsend_vk(vk:int)->bool:"""
    发送文本,需要打开 AiBot 输入法
    :param vk: 虚拟键值
    :return:

    虚拟键值按键对照表 https://blog.csdn.net/yaoyaozaiye/article/details/122826340
    """defback()->bool:"""
    返回
    :return:
    """defhome()->bool:"""
    返回桌面
    :return:
    """defrecent_tasks()->bool:"""
    显示最近任务
    :return:
    """defopen_uri(uri:str)->bool:"""
    唤起 app
    :param uri: app 唤醒协议
    :return:

    open_uri("alipayqr://platformapi/startapp?saId=10000007")
    """defcall_phone(mobile:str)->bool:"""
    拨打电话
    :param mobile: 手机号码
    :return:
    """defsend_msg(mobile, text)->bool:"""
    发送短信
    :param mobile: 手机号码
    :param text: 短信内容
    :return:
    """defget_activity()->str:"""
    获取活动页
    :return:
    """defget_package()->str:"""
    获取包名
    :return:
    """defset_clipboard_text(text:str)->bool:"""
    设置剪切板文本
    :param text:
    :return:
    """defget_clipboard_text()->str:"""
    获取剪切板内容
    :return:
    """

控件与参数

defcreate_text_view(_id:int, text:str, x:int, y:int, width:int=400, height:int=60):"""
    创建文本框控件
    :param _id:  控件ID,不可与其他控件重复
    :param text:  控件文本
    :param x:  控件在屏幕上x坐标
    :param y:  控件在屏幕上y坐标
    :param width:  控件宽度,默认 400
    :param height:  控件高度,默认 60
    :return:
    """defcreate_edit_view(_id:int, text:str, x:int, y:int, width:int=400, height:int=150):"""
    创建编辑框控件
    :param _id:  控件ID,不可与其他控件重复
    :param text:  控件文本
    :param x:  控件在屏幕上x坐标
    :param y:  控件在屏幕上y坐标
    :param width:  控件宽度,默认 400
    :param height:  控件高度,默认 150
    :return:
    """defcreate_check_box(_id:int, text:str, x:int, y:int, width:int=400, height:int=60):"""
    创建复选框控件
    :param _id:  控件ID,不可与其他控件重复
    :param text:  控件文本
    :param x:  控件在屏幕上x坐标
    :param y:  控件在屏幕上y坐标
    :param width:  控件宽度,默认 400
    :param height:  控件高度,默认 60
    :return:
    """defget_script_params()-> Optional[dict]:"""
    获取脚本参数
    :return:
    """

WinBot开发手册

窗口操作

deffind_window(class_name:str=None, window_name:str=None)-> Optional[str]:"""
    查找窗口句柄,仅查找顶级窗口,不包含子窗口
    :param class_name: 窗口类名
    :param window_name: 窗口名
    :return:
    """deffind_windows(class_name:str=None, window_name:str=None)-> List[str]:"""
    查找窗口句柄数组,仅查找顶级窗口,不包含子窗口
    class_name 和 window_name 都为 None,则返回所有窗口句柄
    :param class_name: 窗口类名
    :param window_name: 窗口名
    :return:
    """deffind_sub_window(hwnd:str, class_name:str=None, window_name:str=None)-> Optional[str]:"""
    查找子窗口句柄
    :param hwnd: 当前窗口句柄
    :param class_name: 窗口类名
    :param window_name: 窗口名
    :return:
    """deffind_parent_window(hwnd:str)-> Optional[str]:"""
    查找父窗口句柄
    :param hwnd: 当前窗口句柄
    :return:
    """defget_window_name(hwnd:str)-> Optional[str]:"""
    获取窗口名称
    :param hwnd: 当前窗口句柄
    :return:
    """defshow_window(hwnd:str, show:bool)->bool:"""
    显示/隐藏窗口
    :param hwnd: 当前窗口句柄
    :param show: 是否显示窗口
    :return:
    """defset_window_top(hwnd:str)->bool:"""
    设置窗口到最顶层
    :param hwnd: 当前窗口句柄
    :return:
    """

键鼠操作

defmove_mouse(hwnd:str, x:float, y:float, mode:bool=False, ele_hwnd:str="0")->bool:"""
    移动鼠标
    :param hwnd: 当前窗口句柄
    :param x: 横坐标
    :param y: 纵坐标
    :param mode: 操作模式,后台 true,前台 false, 默认前台操作
    :param ele_hwnd: 元素句柄,如果 mode=True 且目标控件有单独的句柄,则需要通过 get_element_window 获得元素句柄,指定 ele_hwnd 的值(极少应用窗口由父窗口响应消息,则无需指定);
    :return:
    """defscroll_mouse(hwnd:str, x:float, y:float, count:int, mode:bool=False)->bool:"""
    滚动鼠标
    :param hwnd: 当前窗口句柄
    :param x: 横坐标
    :param y: 纵坐标
    :param count: 鼠标滚动次数, 负数下滚鼠标, 正数上滚鼠标
    :param mode: 操作模式,后台 true,前台 false, 默认前台操作
    :return:
    """defclick_mouse(hwnd:str, x:float, y:float, typ:int, mode:bool=False, ele_hwnd:str="0")->bool:"""
    鼠标点击
    :param hwnd: 当前窗口句柄
    :param x: 横坐标
    :param y: 纵坐标
    :param typ: 点击类型,单击左键:1 单击右键:2 按下左键:3 弹起左键:4 按下右键:5 弹起右键:6 双击左键:7 双击右键:8
    :param mode: 操作模式,后台 true,前台 false, 默认前台操作
    :param ele_hwnd: 元素句柄,如果 mode=True 且目标控件有单独的句柄,则需要通过 get_element_window 获得元素句柄,指定 ele_hwnd 的值(极少应用窗口由父窗口响应消息,则无需指定);
    :return:
    """defsend_keys(text:str)->bool:"""
    输入文本
    :param text: 输入的文本
    :return:
    """defsend_keys_by_hwnd(hwnd:str, text:str)->bool:"""
    后台输入文本(杀毒软件可能会拦截)
    :param hwnd: 窗口句柄
    :param text: 输入的文本
    :return:
    """defsend_vk(vk:int, typ:int)->bool:"""
    输入虚拟键值(VK)
    :param vk: VK键值
    :param typ: 输入类型,按下弹起:1 按下:2 弹起:3
    :return:
    """defsend_vk_by_hwnd(hwnd:str, vk:int, typ:int)->bool:"""
    后台输入虚拟键值(VK)
    :param hwnd: 窗口句柄
    :param vk: VK键值
    :param typ: 输入类型,按下弹起:1 按下:2 弹起:3
    :return:
    """

图色操作

defsave_screenshot(hwnd:str, save_path:str, region: _Region =None, algorithm: _Algorithm =None, mode:bool=False)->bool:"""
    截图
    :param hwnd: 窗口句柄;
    :param save_path: 图片存储路径;
    :param region: 截图区域,默认全屏;
    :param algorithm: 处理截图所用算法和参数,默认保存原图;
    :param mode: 操作模式,后台 true,前台 false, 默认前台操作;
    :return:

    # 区域相关参数
    region = (0, 0, 0, 0) 按元素顺序分别代表:起点x、起点y、终点x、终点y,最终得到一个矩形。
    # 算法相关参数
    algorithm = (0, 0, 0) # 按元素顺序分别代表:algorithm_type 算法类型、threshold 阈值、max_val 最大值。
    threshold 和 max_val 同为 255 时灰度处理.
    0   THRESH_BINARY      算法,当前点值大于阈值 threshold 时,取最大值 max_val,否则设置为 0;
    1   THRESH_BINARY_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则设置为最大值 max_val;
    2   THRESH_TOZERO      算法,当前点值大于阈值 threshold 时,不改变,否则设置为 0;
    3   THRESH_TOZERO_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则不改变;
    4   THRESH_TRUNC       算法,当前点值大于阈值 threshold 时,设置为阈值 threshold,否则不改变;
    5   ADAPTIVE_THRESH_MEAN_C      算法,自适应阈值;
    6   ADAPTIVE_THRESH_GAUSSIAN_C  算法,自适应阈值;
    """defget_color(hwnd:str, x:float, y:float, mode:bool=False)-> Optional[str]:"""
    获取指定坐标点的色值,返回色值字符串(#008577)或者 None
    :param hwnd: 窗口句柄;
    :param x: x 坐标;
    :param y: y 坐标;
    :param mode: 操作模式,后台 true,前台 false, 默认前台操作;
    :return:
    """deffind_color(hwnd:str, color:str, sub_colors: _SubColors =None, region: _Region =None,
               similarity:float=0.9, mode:bool=False, wait_time:float=None,
               interval_time:float=None):"""
    获取指定色值的坐标点,返回坐标或者 None
    :param hwnd: 窗口句柄;
    :param color: 颜色字符串,必须以 # 开头,例如:#008577;
    :param sub_colors: 辅助定位的其他颜色;
    :param region: 在指定区域内找色,默认全屏;
    :param similarity: 相似度,0-1 的浮点数,默认 0.9;
    :param mode: 操作模式,后台 true,前台 false, 默认前台操作;
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:

    # 区域相关参数
    region = (0, 0, 0, 0) 按元素顺序分别代表:起点x、起点y、终点x、终点y,最终得到一个矩形。
    # 算法相关参数
    algorithm = (0, 0, 0) # 按元素顺序分别代表:algorithm_type 算法类型、threshold 阈值、max_val 最大值。
    threshold 和 max_val 同为 255 时灰度处理.
    0   THRESH_BINARY      算法,当前点值大于阈值 threshold 时,取最大值 max_val,否则设置为 0;
    1   THRESH_BINARY_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则设置为最大值 max_val;
    2   THRESH_TOZERO      算法,当前点值大于阈值 threshold 时,不改变,否则设置为 0;
    3   THRESH_TOZERO_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则不改变;
    4   THRESH_TRUNC       算法,当前点值大于阈值 threshold 时,设置为阈值 threshold,否则不改变;
    5   ADAPTIVE_THRESH_MEAN_C      算法,自适应阈值;
    6   ADAPTIVE_THRESH_GAUSSIAN_C  算法,自适应阈值;
    """deffind_images(hwnd:str, image_path:str, region: _Region =None, algorithm: _Algorithm =None,
                similarity:float=0.9, mode:bool=False, multi:int=1, wait_time:float=None,
                interval_time:float=None)-> List[_Point]:"""
    寻找图片坐标,在当前屏幕中寻找给定图片中心点的坐标,返回坐标列表
    :param hwnd: 窗口句柄;
    :param image_path: 图片的绝对路径;
    :param region: 从指定区域中找图,默认全屏;
    :param algorithm: 处理屏幕截图所用的算法,默认原图,注意:给定图片处理时所用的算法,应该和此方法的算法一致;
    :param similarity: 相似度,0-1 的浮点数,默认 0.9;
    :param mode: 操作模式,后台 true,前台 false, 默认前台操作;
    :param multi: 返回图片数量,默认1张;
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:

    # 区域相关参数
    region = (0, 0, 0, 0) 按元素顺序分别代表:起点x、起点y、终点x、终点y,最终得到一个矩形。
    # 算法相关参数
    algorithm = (0, 0, 0) # 按元素顺序分别代表:algorithm_type 算法类型、threshold 阈值、max_val 最大值。
    threshold 和 max_val 同为 255 时灰度处理.
    0   THRESH_BINARY      算法,当前点值大于阈值 threshold 时,取最大值 max_val,否则设置为 0;
    1   THRESH_BINARY_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则设置为最大值 max_val;
    2   THRESH_TOZERO      算法,当前点值大于阈值 threshold 时,不改变,否则设置为 0;
    3   THRESH_TOZERO_INV  算法,当前点值大于阈值 threshold 时,设置为 0,否则不改变;
    4   THRESH_TRUNC       算法,当前点值大于阈值 threshold 时,设置为阈值 threshold,否则不改变;
    5   ADAPTIVE_THRESH_MEAN_C      算法,自适应阈值;
    6   ADAPTIVE_THRESH_GAUSSIAN_C  算法,自适应阈值;
    """deffind_dynamic_image(hwnd:str, interval_ti:int, region: _Region =None, mode:bool=False,
                       wait_time:float=None, interval_time:float=None)-> List[_Point]:"""
    找动态图,对比同一张图在不同时刻是否发生变化,返回坐标列表
    :param hwnd: 窗口句柄;
    :param interval_ti: 前后时刻的间隔时间,单位毫秒;
    :param region: 在指定区域找图,默认全屏;
    :param mode: 操作模式,后台 true,前台 false, 默认前台操作;
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:
    """

OCR

defget_text(hwnd_or_image_path:str, region: _Region =None, mode:bool=False)-> List[str]:"""
    通过 OCR 识别窗口/图片中的文字,返回文字列表
    :param hwnd_or_image_path: 窗口句柄或者图片路径;
    :param region: 识别区域,默认全屏;
    :param mode: 操作模式,后台 true,前台 false, 默认前台操作;
    :return:
    """deffind_text(hwnd_or_image_path:str, text:str, region: _Region =None, mode:bool=False)-> List[_Point]:"""
    通过 OCR 识别窗口/图片中的文字,返回文字列表
    :param hwnd_or_image_path: 识别区域,默认全屏;
    :param text: 要查找的文字;
    :param region: 识别区域,默认全屏;
    :param mode: 操作模式,后台 true,前台 false, 默认前台操作;
    :return:
    """

元素操作

defget_element_name(hwnd:str, xpath:str, wait_time:float=None, interval_time:float=None)-> Optional[str]:"""
    获取元素名称
    :param hwnd: 窗口句柄
    :param xpath: 元素路径
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:
    """defget_element_value(hwnd:str, xpath:str, wait_time:float=None, interval_time:float=None)-> Optional[str]:"""
    获取元素文本
    :param hwnd: 窗口句柄
    :param xpath: 元素路径
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:
    """defget_element_rect(hwnd:str, xpath:str, wait_time:float=None, interval_time:float=None)-> Optional[Tuple[_Point, _Point]]:"""
    获取元素矩形,返回左上和右下坐标
    :param hwnd: 窗口句柄
    :param xpath: 元素路径
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:
    """defget_element_window(hwnd:str, xpath:str, wait_time:float=None, interval_time:float=None)-> Optional[str]:"""
    获取元素窗口句柄
    :param hwnd: 窗口句柄
    :param xpath: 元素路径
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:
    """defclick_element(hwnd:str, xpath:str, typ:int, wait_time:float=None,
                  interval_time:float=None)->bool:"""
    获取元素窗口句柄
    :param hwnd: 窗口句柄
    :param xpath: 元素路径
    :param typ: 操作类型,单击左键:1 单击右键:2 按下左键:3 弹起左键:4 按下右键:5 弹起右键:6 双击左键:7 双击右键:8
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:
    """defset_element_focus(hwnd:str, xpath:str, wait_time:float=None,
                      interval_time:float=None)->bool:"""
    设置元素作为焦点
    :param hwnd: 窗口句柄
    :param xpath: 元素路径
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:
    """defset_element_value(hwnd:str, xpath:str, value:str,
                      wait_time:float=None, interval_time:float=None)->bool:"""
    设置元素文本
    :param hwnd: 窗口句柄
    :param xpath: 元素路径
    :param value: 要设置的内容
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:
    """defscroll_element(hwnd:str, xpath:str, horizontal:int, vertical:int,
                   wait_time:float=None, interval_time:float=None)->bool:"""
    滚动元素
    :param hwnd: 窗口句柄
    :param xpath: 元素路径
    :param horizontal: 水平百分比 -1不滚动
    :param vertical: 垂直百分比 -1不滚动
    :param wait_time: 等待时间,默认取 .wait_timeout;
    :param interval_time: 轮询间隔时间,默认取 .interval_timeout;
    :return:
    """defclose_window(hwnd:str, xpath:str)->bool:"""
    关闭窗口
    :param hwnd: 窗口句柄
    :param xpath: 元素路径
    :return:
    """defset_element_state(hwnd:str, xpath:str, state:str)->bool:"""
    设置窗口状态
    :param hwnd: 窗口句柄
    :param xpath: 元素路径
    :param state: 0正常 1最大化 2 最小化
    :return:
    """

系统剪切板

defset_clipboard_text(text:str)->bool:"""
    设置剪切板内容
    :param text: 要设置的内容
    :return:
    """defget_clipboard_text()->str:"""
    设置剪切板内容
    :return:
    """

启动进程

defstart_process(cmd:str, show_window=True, is_wait=False)->bool:"""
    执行cmd命令
    :param cmd: 命令
    :param show_window: 是否显示窗口,默认显示
    :param is_wait: 是否等待程序结束, 默认不等待
    :return:
    """defdownload_file(url:str, file_path:str, is_wait:bool)->bool:"""

    :param url: 文件地址
    :param file_path: 文件保存的路径
    :param is_wait: 是否等待下载完成
    :return:
    """

WebBot开发手册

页面和导航

defgoto(url:str)->bool:"""
    跳转页面
    :param url:
    :return:
    """defnew_page(url:str)->bool:"""
    新建 Tab 并跳转页面
    :param url:
    :return:
    """defback()->bool:"""
    后退
    :return:
    """defforward()->bool:"""
    前进
    :return:
    """defrefresh()->bool:"""
    刷新
    :return:
    """defsave_screenshot(xpath:str=None)-> Optional[str]:"""
    截图,返回 PNG 格式的 base64
    :param xpath: 元素路径,如果指定该参数则截取元素图片;
    :return:
    """defget_current_page_id()-> Optional[str]:"""
    获取当前页面 ID
    :return:
    """defget_all_page_id()->list:"""
    获取所有页面 ID
    :return:
    """defswitch_to_page(page_id:str)->bool:"""
    切换到指定页面
    :param page_id:
    :return:
    """defclose_current_page()->bool:"""
    关闭当前页面
    :return:
    """defger_current_url()-> Optional[str]:"""
    获取当前页面 URL
    :return:
    """defget_current_title()-> Optional[str]:"""
    获取当前页面标题
    :return:
    """

iframe 操作

defswitch_to_frame(xpath)->bool:"""
    切换到指定 frame
    :param xpath:
    :return:
    """defswitch_to_main_frame()->bool:"""
    切回主 frame
    :return:
    """

元素操作

defclick_element(xpath:str)->bool:"""
    点击元素
    :param xpath:
    :return:
    """defget_element_text(xpath:str)-> Optional[str]:"""
    获取元素文本
    :param xpath:
    :return:
    """defget_element_rect(xpath:str)-> Optional[Tuple[_Point, _Point]]:"""
    获取元素矩形坐标
    :param xpath:
    :return:
    """defget_element_attr(xpath:str, attr_name:str)-> Optional[str]:"""
    获取元素的属性
    :param xpath:
    :param attr_name:
    :return:
    """defget_element_outer_html(xpath:str)-> Optional[str]:"""
    获取元素的 outerHtml
    :param xpath:
    :return:
    """defget_element_inner_html(xpath:str)-> Optional[str]:"""
    获取元素的 innerHtml
    :param xpath:
    :return:
    """defis_selected(xpath:str)->bool:"""
    元素是否已选中
    :param xpath:
    :return:
    """defis_displayed(xpath:str)->bool:"""
    元素是否可见
    :param xpath:
    :return:
    """defis_available(xpath:str)->bool:"""
    元素是否可用
    :param xpath:
    :return:
    """defclear_element(xpath:str)->bool:"""
    清除元素值
    :param xpath:
    :return:
    """defset_element_focus(xpath:str)->bool:"""
    设置元素焦点
    :param xpath:
    :return:
    """defupload_file_by_element(xpath:str, file_path:str)->bool:"""
    通过元素上传文件
    :param xpath:
    :param file_path:
    :return:
    """defsend_keys(xpath:str, value:str)->bool:"""
    输入值
    :param xpath:
    :param value:
    :return:
    """defset_element_value(xpath:str, value:str)->bool:"""
    设置元素值
    :param xpath:
    :param value:
    :return:
    """defset_element_attr(xpath:str, attr_name:str, attr_value:str)->bool:"""
    设置元素属性
    :param xpath:
    :param attr_name:
    :param attr_value:
    :return:
    """defsend_vk(vk:str)->bool:"""
    输入值
    :param vk:
    :return:
    """

键鼠操作

defclick_mouse(point: _Point_Tuple)->bool:"""
    点击鼠标
    :param point: 坐标点
    :return:
    """defmove_mouse(point: _Point_Tuple)->bool:"""
    移动鼠标
    :param point: 坐标点
    :return:
    """defscroll_mouse(start_p: _Point_Tuple, end_p: _Point_Tuple)->bool:"""
    滚动鼠标
    :param start_p: 开始坐标点
    :param end_p: 结束坐标点
    :return:
    """defclick_mouse_by_element(xpath:str)->bool:"""
    根据元素位置点击鼠标
    :param xpath:
    :return:
    """defmove_to_element(xpath:str)->bool:"""
    移动鼠标到元素位置
    :param xpath:
    :return:
    """defscroll_to_element(xpath:str)->bool:"""
    滚动鼠标到元素位置
    :param xpath:
    :return:
    """

Alert

defclick_alert(accept:bool, prompt_text:str)->bool:"""
    点击警告框
    :param accept: 确认或取消
    :param prompt_text: 警告框文本
    :return:
    """defget_alert_text()-> Optional[str]:"""
    获取警告框文本
    :return:
    """

窗口操作

defget_window_pos():"""
    获取窗口位置和状态
    :return:
    """

Cookies

defget_cookies(url:str)-> Optional[list]:"""
    获取指定 url 的 Cookies
    :param url:
    :return:
    """defget_all_cookies()-> Optional[list]:"""
    获取所有的 Cookies
    :return:
    """defset_cookies(url:str, name:str, value:str, options:dict=None)->bool:"""
    设置指定 url 的 Cookies
    :param url: 要设置 Cookie 的域
    :param name: Cookie 名
    :param value: Cookie 值
    :param options: 其他属性
    :return:
    """defdelete_cookies(name:str, url:str="", domain:str="", path:str="")->bool:"""
    删除指定 Cookie
    :param name: 要删除的 Cookie 的名称
    :param url: 删除所有匹配 url 和 name 的 Cookie
    :param domain: 删除所有匹配 domain 和 name 的 Cookie
    :param path: 删除所有匹配 path 和 name 的 Cookie
    :return:
    """defdelete_all_cookies()->bool:"""
    删除所有 Cookie
    :return:
    """defclear_cache()->bool:"""
    清除缓存
    :return:
    """

JS 注入

defexecute_script(script:str)-> Optional[Any]:"""
    注入执行 JS
    :param script: 要执行的 JS 代码
    :return: 假如注入代码有返回值,则返回此值,否则返回 None;

    result = execute_script('(()=>"aibote rpa")()')
    print(result)  # "aibote rpa"
    """

本文转载自: https://blog.csdn.net/chengzhenabc/article/details/128295059
版权归原作者 chengzhenabc 所有, 如有侵权,请联系我们删除。

“Aibote python 版本最全的介绍文档,支持 web windows 和 Android”的评论:

还没有评论