最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python?slack桌面自動(dòng)化開發(fā)工具

 更新時(shí)間:2022年08月10日 11:52:04   作者:automation  
這篇文章主要為大家介紹了python?slack桌面自動(dòng)化開發(fā)工具使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

背景

Slack 自動(dòng)化示例 - 從一個(gè)渠道抓取聯(lián)系人列表

最近,我需要監(jiān)控一些slack頻道的聯(lián)系信息,但我沒有API可以調(diào)用。所以我需要使用UI自動(dòng)化來完成這個(gè)任務(wù)。 繼續(xù)使用這個(gè)庫 Clicknium,除了支持像selenium這樣的web自動(dòng)化之外,它還支持桌面自動(dòng)化,這對(duì)我很有用。 你可以按照這個(gè) Visual Studio Code 擴(kuò)展的入門來設(shè)置環(huán)境,對(duì)我來說不到 2 分鐘。

Slack 客戶端自動(dòng)化 - 抓取聯(lián)系人列表

自動(dòng)選擇組和頻道。 根據(jù)組名,自動(dòng)點(diǎn)擊左側(cè)導(dǎo)航欄:

我使用 Clicknium Recorder 在 slack 上記錄 UI 元素,并使用參數(shù) {{group}} 對(duì)其進(jìn)行更新,如下所示,用于參數(shù)定位器,請(qǐng)參考Clicknium 文檔

我將窗口的標(biāo)題設(shè)置為“Slack*”,因?yàn)?clicknium 支持通配符匹配,它可以提高自動(dòng)化定位的健壯性。 并且我將 tabitem 名稱添加到參數(shù)"group",然后我可以在運(yùn)行階段指定group。

from clicknium import clicknium as cc, locator, ui
ui(locator.slack.tabitem_group, {'group':group}).click()
  • 與自動(dòng)點(diǎn)擊頻道類似。
if not cc.is_existing(locator.slack.treeitem_channel, params):
    ui(locator.slack.treeitem_parent).click()
ui(locator.slack.treeitem_channel, params).click()

由于有時(shí)頻道列表被折疊,所以我檢查目標(biāo)頻道是否存在,如果沒有,需要先單擊頻道以結(jié)束頻道列表。

  • 通過獲取右上角的信息文本來獲取聯(lián)系人計(jì)數(shù),然后解析文本。

text = ui(locator.slack.text_all, params).get_text()
index = text.find("members")
count = int("".join(re.findall("\d+",text[0:index])))
  • 通過單擊右上角的信息顯示聯(lián)系人列表對(duì)話框。

  • 由于聯(lián)系人列表是動(dòng)態(tài)加載的,所以我們抓取了將近 10 個(gè)項(xiàng)目,需要向下滾動(dòng)滾動(dòng)條來加載新聯(lián)系人
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}")

我單擊查找成員編輯框,然后發(fā)送快捷鍵"DOWN"十次,它將觸發(fā)加載新聯(lián)系人。 為了獲取每個(gè)成員名稱,我使用以下參數(shù)定位器:

Slack 客戶端自動(dòng)化 - 抓取聯(lián)系人詳細(xì)信息

在上面的部分中,我展示了如何從頻道中抓取聯(lián)系人列表,在本部分中,我展示了如何抓取每個(gè)聯(lián)系人的詳細(xì)信息,例如電子郵件地址。 (如果頻道沒有顯示電子郵件地址,您可以跳過此部分)。

  • 與上述部分相同,自動(dòng)選擇組和頻道。
  • 通過單擊右上角的信息顯示聯(lián)系人列表對(duì)話框。
  • 輸入聯(lián)系人姓名搜索聯(lián)系人
ui(locator.slack.text_all, params).click()
ui(locator.slack.edit_membername).set_text(item['name'], "set-text")
  • 如果匹配,單擊以顯示聯(lián)系人的個(gè)人資料,然后獲取電子郵件文本 要單擊搜索結(jié)果,我使用以下定位器, 使用參數(shù)"name"設(shè)置名稱并取消選中 listitem 層。

  • 本節(jié)中的錯(cuò)誤處理:
    • 如果搜索失敗,需要關(guān)閉對(duì)話框并迭代到下一個(gè)聯(lián)系人。
    • 如果無法獲取電子郵件信息,需要關(guān)閉個(gè)人資料選項(xiàng)卡并迭代到下一個(gè)聯(lián)系人。
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上,如果需要查看完整代碼,請(qǐng)參考github。

以上就是python slack桌面自動(dòng)化開發(fā)工具的詳細(xì)內(nèi)容,更多關(guān)于python slack桌面自動(dòng)化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python實(shí)現(xiàn)在線音樂播放器

    Python實(shí)現(xiàn)在線音樂播放器

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)在線音樂播放器的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • python檢測IP地址變化并觸發(fā)事件

    python檢測IP地址變化并觸發(fā)事件

    這篇文章主要為大家詳細(xì)介紹了python檢測IP地址變化并觸發(fā)事件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python識(shí)別驗(yàn)證碼的實(shí)現(xiàn)示例

    Python識(shí)別驗(yàn)證碼的實(shí)現(xiàn)示例

    這篇文章主要介紹了Python識(shí)別驗(yàn)證碼的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 使用Pytorch搭建模型的步驟

    使用Pytorch搭建模型的步驟

    這篇文章主要介紹了使用Pytorch搭建模型的步驟,幫助大家更好的理解和使用Pytorch,進(jìn)行機(jī)器學(xué)習(xí),感興趣的朋友可以了解下
    2020-11-11
  • python創(chuàng)建和使用字典實(shí)例詳解

    python創(chuàng)建和使用字典實(shí)例詳解

    字典是python中唯一內(nèi)建的映射類型。字典中的值并沒有特殊的順序,但是都存儲(chǔ)在一個(gè)特定的鍵(key)里。
    2013-11-11
  • PyTorch之torch.matmul函數(shù)的使用及說明

    PyTorch之torch.matmul函數(shù)的使用及說明

    PyTorch的torch.matmul是一個(gè)強(qiáng)大的矩陣乘法函數(shù),支持不同維度張量的乘法運(yùn)算,包括廣播機(jī)制。提供了矩陣乘法的語法,參數(shù)說明,以及使用示例,幫助理解其應(yīng)用方式和乘法規(guī)則
    2024-09-09
  • 詳解Python中的array數(shù)組模塊相關(guān)使用

    詳解Python中的array數(shù)組模塊相關(guān)使用

    數(shù)組并不是Python中內(nèi)置的標(biāo)配數(shù)據(jù)結(jié)構(gòu),不過擁有array模塊我們也可以在Python中使用數(shù)組結(jié)構(gòu),下面我們就來詳解詳解Python中的array數(shù)組模塊相關(guān)使用
    2016-07-07
  • jupyter?notebook?中使用ipython?魔法指令的詳細(xì)過程

    jupyter?notebook?中使用ipython?魔法指令的詳細(xì)過程

    在?Jupyter?Notebook?中,IPython?魔法指令為數(shù)據(jù)分析和探索提供了很多便利,這篇文章主要介紹了jupyter?notebook?中使用ipython?魔法指令的詳細(xì)過程,需要的朋友可以參考下
    2024-06-06
  • Python 一鍵獲取百度網(wǎng)盤提取碼的方法

    Python 一鍵獲取百度網(wǎng)盤提取碼的方法

    這篇文章主要介紹了Python 一鍵獲取百度網(wǎng)盤提取碼的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python輸出漢字字庫及將文字轉(zhuǎn)換為圖片的方法

    Python輸出漢字字庫及將文字轉(zhuǎn)換為圖片的方法

    這篇文章主要介紹了Python輸出漢字字庫及將文字轉(zhuǎn)換為圖片的方法,分別用到了codecs模塊和pygame模塊,需要的朋友可以參考下
    2016-06-06

最新評(píng)論

白沙| 来凤县| 高唐县| 青川县| 牟定县| 泰顺县| 安溪县| 新安县| 怀化市| 古交市| 克拉玛依市| 西城区| 洛川县| 疏附县| 赤峰市| 沈阳市| 酉阳| 开江县| 昆山市| 宜兰市| 焉耆| 岳池县| 根河市| 天峨县| 昌邑市| 涿州市| 贺州市| 吉林省| 东兰县| 新营市| 海林市| 白水县| 定远县| 浪卡子县| 明光市| 德江县| 武强县| 禹城市| 万宁市| 莫力| 榆社县|