我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python slack桌面自动化开发工具

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python slack桌面自动化开发工具

背景

Slack 自动化示例 - 从一个渠道抓取联系人列表

最近,我需要监控一些slack频道的联系信息,但我没有API可以调用。所以我需要使用UI自动化来完成这个任务。 继续使用这个库 Clicknium,除了支持像selenium这样的web自动化之外,它还支持桌面自动化,这对我很有用。 你可以按照这个 Visual Studio Code 扩展的入门来设置环境,对我来说不到 2 分钟。

Slack 客户端自动化 - 抓取联系人列表

自动选择组和频道。 根据组名,自动点击左侧导航栏:

我使用 Clicknium Recorder 在 slack 上记录 UI 元素,并使用参数 {{group}} 对其进行更新,如下所示,用于参数定位器,请参考Clicknium 文档

我将窗口的标题设置为“Slack*”,因为 clicknium 支持通配符匹配,它可以提高自动化定位的健壮性。 并且我将 tabitem 名称添加到参数"group",然后我可以在运行阶段指定group。

from clicknium import clicknium as cc, locator, ui
ui(locator.slack.tabitem_group, {'group':group}).click()
  • 与自动点击频道类似。
if not cc.is_existing(locator.slack.treeitem_channel, params):
    ui(locator.slack.treeitem_parent).click()
ui(locator.slack.treeitem_channel, params).click()

由于有时频道列表被折叠,所以我检查目标频道是否存在,如果没有,需要先单击频道以结束频道列表。

  • 通过获取右上角的信息文本来获取联系人计数,然后解析文本。

text = ui(locator.slack.text_all, params).get_text()
index = text.find("members")
count = int("".join(re.findall("\d+",text[0:index])))
  • 通过单击右上角的信息显示联系人列表对话框。

  • 由于联系人列表是动态加载的,所以我们抓取了将近 10 个项目,需要向下滚动滚动条来加载新联系人
for i in range(1,13):
    dict = {"index":i}
    if not cc.is_existing(locator.slack.listitem_member, dict):
        continue
    elem_member = ui(locator.slack.listitem_member, dict)
    name = elem_member.get_text()
    if NotContains(names, name):
        names.append({'name':name,'email':'', 'postfix':''})
        step += 1
        if step % 100 == 0:
            SaveToFile(names)
## move mouse down to trigger new data loaded for member list
ui(locator.slack.edit_membername).click(by='mouse-emulation')
for i in range(10):
    cc.send_hotkey("{DOWN}")

我单击查找成员编辑框,然后发送快捷键"DOWN"十次,它将触发加载新联系人。 为了获取每个成员名称,我使用以下参数定位器:

Slack 客户端自动化 - 抓取联系人详细信息

在上面的部分中,我展示了如何从频道中抓取联系人列表,在本部分中,我展示了如何抓取每个联系人的详细信息,例如电子邮件地址。 (如果频道没有显示电子邮件地址,您可以跳过此部分)。

  • 与上述部分相同,自动选择组和频道。
  • 通过单击右上角的信息显示联系人列表对话框。
  • 输入联系人姓名搜索联系人
ui(locator.slack.text_all, params).click()
ui(locator.slack.edit_membername).set_text(item['name'], "set-text")
  • 如果匹配,单击以显示联系人的个人资料,然后获取电子邮件文本 要单击搜索结果,我使用以下定位器, 使用参数"name"设置名称并取消选中 listitem 层。

  • 本节中的错误处理:
    • 如果搜索失败,需要关闭对话框并迭代到下一个联系人。
    • 如果无法获取电子邮件信息,需要关闭个人资料选项卡并迭代到下一个联系人。
member1 = cc.wait_appear(locator.slack.listitem_member1, {'name':item['name']})
if member1 != None:
    member1.click()
else:
    print("failed to search the member")
    item['email'] = "ignore"
    item['postfix'] = ""
    ui(locator.slack.image).click()
    continue
try:
    email = ui(locator.slack.text_email).get_text(timeout=5)
    item['email'] = email
    item['postfix'] = email.split('@')[1]
except:
    print("failed to find the email")
    item['email'] = "ignore"
    item['postfix'] = ""
    if cc.is_existing(locator.slack.image):
        ui(locator.slack.image).click()
        continue

开源代码

我把代码放在我的github上,如果需要查看完整代码,请参考github。

以上就是python slack桌面自动化开发工具的详细内容,更多关于python slack桌面自动化的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python slack桌面自动化开发工具

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python开发的自动化运维工具ansible详解

目录ansible 简介ansible 是什么?ansible 特点ansible 架构图ansible 任务执行ansible 任务执行模式ansible 执行流程ansible 命令执行过程ansible 配置详解ansible 安装方
2022-06-02

python 自动化部署工具-fabri

今天闲来无事,来介绍一下利用fabric 来部署代码包。安装 pip install fabricfabric 默认引用fafile.py,指定执行文件加参数-f,如:fab -H 127.0.0.1 -f fabtest.py test生
2023-01-31

自动化测试工具开发流程是什么

自动化测试工具开发流程通常包括以下几个步骤:1.需求分析:确定自动化测试工具的目标和功能,明确需求。2.设计架构:根据需求设计自动化测试工具的整体架构和模块之间的关系。3.编写代码:根据设计的架构编写代码,实现自动化测试工具的各个模块。4.
2023-06-07

python 自动化部署工具Fabric

自动化部署工具Fabric简介    Fabric就是一个帮助我们在上线时减少重复/繁琐操作的自动化部署利器,对于缺乏成熟运维平台的众多小公司的运维或开发人员来说,掌握这个工具是有必要的。1. Fabric是什么Fabric官方文档的描述如
2023-01-31

CMS插件开发 的自动化工具:解放开发者双手

CMS 插件开发自动化工具旨在节省开发人员的时间和精力,通过自动执行重复性任务和提供智能见解,提升插件开发效率。
CMS插件开发 的自动化工具:解放开发者双手
2024-02-15

android界面自动化测试工具monkeyrunner

MonkeyRunner是一个Android平台的界面自动化测试工具,它基于Python语言,可以通过编写脚本来模拟用户操作。MonkeyRunner提供了一套API来与Android设备交互,可以实现点击、滑动、输入文本等操作,并且可以获
2023-09-23

Python 制作自动化翻译工具

妈妈再也不用担心我的英语了。 一个可能你似曾相识的场景阅读内容包含大量英文的 PPT、Word、Excel 或者记事本时,由于英语不熟悉,为了流利地阅读,需要打开浏览器进入谷歌翻译的主界面,然后把英文复制到谷歌翻译的输入框中,最后又把翻译结
2022-06-02

Python进行自动化测试工具

在自动化测试里Python用途很广,但是市面上测试工具不是很多,这里主要介绍的是一些Python测试的框架1、单元测试a、unittest、doctest:Python自带的单元测试框架b、pyunit:Junit的Python版本c、py
2023-01-31

Win7桌面小工具无法在开机时自动启动的解决方法

Win7系统一直以实用性与美观性深受广大用户的喜欢,拥有着较多http://www.cppcns.com的用户群体,因此有很多人喜欢Win7系统中的桌面小工具。这个小工具能在开机时实现自动启动,有时候却难免会遇到无法自动启动的问题,这该如何
2023-06-05

如何使用GNOME优化工具自定义Linux桌面

这篇文章主要介绍如何使用GNOME优化工具自定义Linux桌面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在 Ubuntu 18.04 或其它版本上安装 GNOME 优化工具GNOME 优化工具可从 Ubuntu
2023-06-16

怎么使用Python自动化工具Fabric

这篇文章主要讲解了“怎么使用Python自动化工具Fabric”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python自动化工具Fabric”吧!Fabric 主要用在应用部署与系
2023-06-16

Python自动化开发学习6

假设我们要在我们的程序里表示狗,狗有如下属性:名字、品种、颜色。那么可以先定义一个模板,然后调用这个模板生成各种狗。def dog(name,d_type,color): data = { 'name':name,
2023-01-31

Python自动化开发学习3

函数通过函数,可以定义一段代码块,之后通过函数名可以反复调用定义一个函数:def alert():    "打印Hello World"    print("Hello World")使用def来定义函数,第二行建议使用使用文档字符串进行函
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录