<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Slack 自動化範例 - 從一個渠道抓取聯絡人列表
最近,我需要監控一些slack頻道的聯絡資訊,但我沒有API可以呼叫。所以我需要使用UI自動化來完成這個任務。 繼續使用這個庫 Clicknium,除了支援像selenium這樣的web自動化之外,它還支援桌面自動化,這對我很有用。 你可以按照這個 Visual Studio Code 擴充套件的入門來設定環境,對我來說不到 2 分鐘。
自動選擇組和頻道。 根據組名,自動點選左側導航欄:
我使用 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])))
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"十次,它將觸發載入新聯絡人。 為了獲取每個成員名稱,我使用以下引數定位器:
在上面的部分中,我展示瞭如何從頻道中抓取聯絡人列表,在本部分中,我展示瞭如何抓取每個聯絡人的詳細資訊,例如電子郵件地址。 (如果頻道沒有顯示電子郵件地址,您可以跳過此部分)。
ui(locator.slack.text_all, params).click() ui(locator.slack.edit_membername).set_text(item['name'], "set-text")
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桌面自動化的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45