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. 自定义一个脚本类,继承 AndroidBotMain
class CustomAndroidScript(AndroidBotMain):
    # 3. 设置等待参数
    # 3.1 设置等待时间
    wait_timeout = 3
    # 3.2 设置重试间隔时长
    interval_timeout = 0.5

    # 4. 设置日志等级
    log_level = "INFO"  # "DEBUG"

    # 5. 设置方法超时是否抛出异常
    raise_err = False  # True

    # 6. 重写方法,编写脚本
    # 注意:此方法是脚本执行入口
    def script_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. 自定义一个脚本类,继承 WinBotMain
class CustomWinScript(WinBotMain):
    # 3. 设置等待参数
    # 3.1 设置等待时间
    wait_timeout = 3
    # 3.2 设置重试间隔时长
    interval_timeout = 0.5

    # 4. 设置日志等级
    log_level = "INFO"  # "DEBUG"

    # 5. 设置方法超时是否抛出异常
    raise_err = False  # True

    # 6. 重写方法,编写脚本
    # 注意:此方法是脚本执行入口
    def script_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. 自定义一个脚本类,继承 WebBotMain
class CustomWebScript(WebBotMain):
    # 3. 设置等待参数
    # 3.1 设置等待时间
    wait_timeout = 3
    # 3.2 设置重试间隔时长
    interval_timeout = 0.5

    # 4. 设置日志等级
    log_level = "INFO"  # "DEBUG"

    # 5. 设置方法超时是否抛出异常
    raise_err = False  # True

    # 6. 重写方法,编写脚本
    # 注意:此方法是脚本执行入口
    def script_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开发手册

图色

def save_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  算法,自适应阈值;
    """


def save_element_screenshot(image_name, xpath) -> Optional[str]:
    """
    保存元素截图,返回图片地址(手机中)或者 None
    :return:
    """

def get_color(point: _Point_Tuple) -> Optional[str]:
    """
    获取指定坐标点的色值,返回色值字符串(#008577)或者 None
    :param point: 坐标点;
    :return:
    """

找图

def find_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  算法,自适应阈值;
    """

def find_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  算法,自适应阈值;
    """


def find_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  算法,自适应阈值;
    """


def find_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[_Poin
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值