python slack桌面自动化开发工具

目录
  • 背景
  • Slack 客户端自动化 - 抓取联系人列表
  • 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桌面自动化的资料请关注我们其它相关文章!

(0)

相关推荐

  • python自动化测试之破解滑动验证码

    在Web自动化测试的过程中,经常会被登录的验证码给卡住,不知道如何去通过验证码的验证.一般的情况下遇到验证码我们可以都可以找开发去帮忙解决,关闭验证码,或者给一个万能的验证码!那么如果开发不提供帮助的话,我们自己有没有办法来处理这些验证码的问题呢?答案当然是有的,常见的验证码一般分为两类,一类是图文验证码,一类是滑动验证码! 滑动验证破解思路 关于滑动验证码破解的思路大体上来讲就是以下两个步骤: 1.获取滑块滑动的距离 2.模拟拖动滑块,通过验证. 关于这种滑动的验证码,滑块和缺口背景都是分别是

  • Python自动化办公之图片转PDF的实现

    安装的方式很常规,直接使用pip安装就行了. pip install fpdf 将需要使用的三方模块导入进来 from fpdf import FPDF # PDF文档对象操作库 import os # 文件路径操作库 初始化PDF文档对象 PDF = FPDF() 关闭自动分页 PDF.set_auto_page_break(0) 设置需要转换的批量图片路径 path = r'C:/imgs' 遍历图片到数组 images = [i for i in os.listdir(path)] 设置多

  • Python自动化办公之Word转PDF的实现

    目录 pdf 工具包 - pdfkit html 转 pdf 网址 转 pdf 字符串生成pdf 结合 pydocx 将 word 转 html 再转 pdf 该章节我们将要学习如何将 word 文件转为 PDF文件,其实网上有很多种生成 PDF 的教程,不过绝大多数都是以 windows 为主的,并且兼容有很多的问题.windows.mac.linux 同时兼容的情况比较少,所以今天的章节我们就来学习一下如何在 windows.mac.linux 三种系统中都可以生成 PDF 的解决方案. p

  • Python自动化办公之Word文档的创建与生成

    目录 保存生成 word 生成标题 生成段落 添加图片 添加表格 分页 上几章节我们主要学习了如何读取文章,而主要任务是读取文档中的文本信息,也就是字符串,而图片本身是不可读的文件所以并没有去读取图片.从今天开始将学习如何通过 python 脚本来自动生成一个 word 文档. 保存生成 word 在学习如何生成一个 word 文档之前,我们来看看如何保存生成 word 文件,因为马上就会用到. 使用方法: document_obj.save(文件地址) ---> /home/demo.docx

  • Python自动化实战之接口请求的实现

    目录 使用 Python 发送 请求 Python 发送请求的方式 requests 库的配置 天行数据 - 空气质量接口 利用 requests 发送查询 空气质量接口 请求 在前文说过,如果想要更好的做接口测试,我们要利用自己的代码基础与代码优势,所以该章节不会再介绍商业化的.通用的接口测试工具,重点介绍如何通过 python 编码来实现我们的接口测试以及通过 Pycharm 的实际应用编写一个简单接口测试. 使用 Python 发送 请求 应为从最开始写这个 Python全栈系列 一直使用

  • Python自动化办公之Word文件内容的读取

    目录 前言 利用 python 批量读取文件 word利器之python-docx python-docx 安装 python-docx 之 Document python-docx 之段落内容读取 python-docx 之表格内容读取 前言 前面几个章节我们学习了对于普通文件的操作,比如说文件的创建.复制粘贴.裁剪粘贴.文件名的重命名.删除等等.另外还学习了一些基本练习,如何查找文件.如何按照内容查找文件等等. 在本章节及后续,将开始学习一些特殊文件的自动化相关操作.如 word.excel

  • python slack桌面自动化开发工具

    目录 背景 Slack 客户端自动化 - 抓取联系人列表 Slack 客户端自动化 - 抓取联系人详细信息 开源代码 背景 Slack 自动化示例 - 从一个渠道抓取联系人列表 最近,我需要监控一些slack频道的联系信息,但我没有API可以调用.所以我需要使用UI自动化来完成这个任务. 继续使用这个库 Clicknium,除了支持像selenium这样的web自动化之外,它还支持桌面自动化,这对我很有用. 你可以按照这个 Visual Studio Code 扩展的入门来设置环境,对我来说不到

  • python的几种开发工具介绍

    1 IDLE1.1 IDLE是python创初人Guido van Rossum使用python and Tkinter来创建的一个集成开发环境.要使用IDLE必须安装python and Tkinter.1.2 特性:自动缩进,彩色编码,命令历史(Alt+p,Alt+n)和单词自动(Alt+/)完成.1.3 用IDLE执行Tkinter程序,不要在程序中包括mainloop.IDLE本身就是Tkinter应用程序,它会自动调用mainloop.再调用一次mainloop会与IDLE的事件循环冲

  • Python实现桌面翻译工具【新手必学】

    Python 用了好长一段时间了,起初是基于对爬虫的兴趣而接触到的.随着不断的深入,慢慢的转了其它语言,毕竟工作机会真的太少了.很多技能长时间不去用,就会出现遗忘,也就有了整理一下,供初学者学习和讨论.相对于其它语言,你可以用很少的代码,便能实现一个完整的功能. ps:另外很多人在学习Python的过程中,往往因为遇问题解决不了从而导致自己放弃,为此我建了个Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题有老司机解决

  • Python开发工具Pycharm的安装以及使用步骤总结

    前言 PyCharm是一种Python 的IDE工具(集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,内部集成的功能如下: Project管理 智能提示 语法高亮 代码跳转 调试代码 解释代码(解释器) 框架和库 ...... 总而言之,PyCharm 是一款功能强大的 Python 编辑器,推荐以后编写Python代码,主要用的就是这款IDE. 一.Pycharm下载 先登陆Pycharm官网或者直接输入Pycharm下载地址:https://www.jet

  • 5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用频率比较高的5款开发工具推荐给大家,希望对大家的工作和学习有帮助. 一.最强终端:Upterm 本来想推荐 fish 或者 zsh,但其实这两个我也主要是贪图自动补全这个特性.最近在用的这个 Upterm 其实很简单好用,它是一个全平台的终端,可以说是终端里的 IDE,有着强大的自动补全功能.之前的

  • 浅析Python 实现一个自动化翻译和替换的工具

    一个可能你似曾相识的场景 阅读内容包含大量英文的 PPT.Word.Excel 或者记事本时,由于英语不熟悉,为了流利地阅读,需要打开浏览器进入谷歌翻译的主界面,然后把英文复制到谷歌翻译的输入框中,最后又把翻译结果复制回 PPT.Word 和 Excel. 要是一个两个单词还好,要是发现有 100 个单词不认识,就必须复制粘贴 200 次,如此机械性重复性的工作,应该交给程序来做,这就是我设计下面这个自动化翻译工具的初衷. 提升办公效率的法宝 如上图所示,运行程序并保持后台运行,在电脑上的任何一

  • python自动化UI工具发送QQ消息的实例

    概述 个人遇到过小的需求,windows自动水群发送垃圾消息,使用一些特别简单易上手的小工具,快速实现功能需求(而不是使用一些重量级的还需要额外花时间去熟悉功能语法的大工具,如UI自动化工具sikulix).在一番摸索下,得出一番结论: 对于多平台的UI自动复杂操作,还是去学sikulix吧,这不是啃一点win32 api获取窗口句柄就能轻松解决的,毕竟sikulix是MIT大佬折腾出来的.而且,原理也更复杂(通过使用opencv对窗体控件进行识别,进而实现控制操作). 对于简单的操作(控制剪切

  • 如何在python开发工具PyCharm中搭建QtPy环境(教程详解)

    在Python的开发工具PyCharm中安装QtPy5(版本5):打开"File"--"Settings"--"Project Interpreter",点击窗口中右侧点添加按钮,然后在弹出的窗口添加PyQt5模块包,单击Install Package按钮,如图所示: 安装好安装PyQt5后,需要用同样的方法安装pyqt5-tools,安装PyQt5后没有designer.exe就是因为没有安装pyqt5-tools.安装好PyQt5后,desi

  • Python 开发工具PyCharm安装教程图文详解(新手必看)

    PyCharm是由JetBrains打造的一款Python IDE,VS2010的重构插件Resharper就是出自JetBrains之手. 同时支持Google App Engine,PyCharm支持IronPython.这些功能在先进代码分析程序的支持下,使 PyCharm 成为 Python 专业开发人员和刚起步人员使用的有力工具. PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳

  • Python集成开发工具Pycharm的安装和使用详解

    Python语言当前越来越流行,使用的人越来越多,集成开发工具pycharm是当前使用比较多的一个开发工具,掌握pycharm的安装和基本的使用非常重要. (1)pycharm的下载. 进入到pycharm的官网:https://www.jetbrains.com/pycharm/download/ 下载社区版的即可. (2)安装 双击安装包,默认安装即可. (3)几种常用使用场景介绍. (3.1)创建工程: 说明:左边有可以创建的工程类型一览,本次我们以[pure python]工程为例. 红

随机推荐