|
|
@@ -0,0 +1,81 @@
|
|
|
+import time
|
|
|
+import page
|
|
|
+from conf.config import logger
|
|
|
+
|
|
|
+class Chat:
|
|
|
+ homepage = 'https://www.douyin.com/user/self'
|
|
|
+ def __init__(self, ) -> None:
|
|
|
+ self.tab_home = page.page.tab
|
|
|
+ # logger.info(f"{self.tab_home.url}")
|
|
|
+ self.check_home_page()
|
|
|
+
|
|
|
+ def run(self):
|
|
|
+ stranger_msg_count = 0
|
|
|
+ while True:
|
|
|
+ self.check_home_page()
|
|
|
+ self.tab_home.scroll.to_top()
|
|
|
+ ele_im = self.tab_home.ele('xpath://div[@data-e2e="im-entry"]')
|
|
|
+ ele_im_red_pot = ele_im._find_elements('xpath://div[@class="LFWqFfyH isLight"]', raise_err=False)
|
|
|
+ # 存在私信小红点
|
|
|
+ ele_has_msg = ele_im_red_pot._find_elements('xpath:/div',raise_err=False)
|
|
|
+ if ele_has_msg:
|
|
|
+ logger.info(f"有未读消息 {ele_has_msg.text}")
|
|
|
+ ele_im.click()
|
|
|
+ self.response_frined()
|
|
|
+
|
|
|
+ stranger_msg_count +=1
|
|
|
+ if stranger_msg_count > 10:
|
|
|
+ stranger_msg_count = 0
|
|
|
+ ele_im.click()
|
|
|
+ ele_stranger = ele_im._find_elements("陌生人消息", raise_err=False)
|
|
|
+ if ele_stranger:
|
|
|
+ logger.info(f"有陌生人消息")
|
|
|
+ self.response_stranger()
|
|
|
+ time.sleep(1)
|
|
|
+
|
|
|
+ def response_frined(self):
|
|
|
+ logger.info(f"回复好友")
|
|
|
+ # 找到私信弹出窗口
|
|
|
+ # data-e2e="listDlg-container"
|
|
|
+ ele_list_dlg = self.tab_home.ele('xpath://div[@data-e2e="listDlg-container"]')
|
|
|
+ logger.info(f"ele_list_dlg.html {ele_list_dlg.html}")
|
|
|
+ # 找到未读消息小红点
|
|
|
+ # class="hcPUqxqn"
|
|
|
+ ele_msg_red_pot = ele_list_dlg.ele('xpath://div[@class="hcPUqxqn"]')
|
|
|
+ ele_msg_red_pot.click()
|
|
|
+ # 找到聊天会话框
|
|
|
+ # class="qbjZBApl popShadowAnimation"
|
|
|
+ ele_popShadowAnimation = self.tab_home.ele('xpath://div[@class="qbjZBApl popShadowAnimation"]')
|
|
|
+ # 找到输入框
|
|
|
+ # data-e2e="msg-input"
|
|
|
+ ele_input = ele_popShadowAnimation.ele('xpath://div[@data-e2e="msg-input"]')
|
|
|
+ ele_input.click()
|
|
|
+ ele_input.input("hello")
|
|
|
+
|
|
|
+ # 找到发送按钮
|
|
|
+ # span class="e2e-send-msg-btn"
|
|
|
+ ele_send = ele_popShadowAnimation.ele('xpath://span[contains(@class, "e2e-send-msg-btn")]')
|
|
|
+ ele_send.click()
|
|
|
+ ele_popShadowAnimation.ele('退出会话').click()
|
|
|
+
|
|
|
+ logger.info(f"回复成功")
|
|
|
+
|
|
|
+ def response_stranger(self):
|
|
|
+ logger.info(f"回复陌生人")
|
|
|
+
|
|
|
+ def check_home_page(self):
|
|
|
+ if "/user/self" not in self.tab_home.url:
|
|
|
+ self.tab_home.get(self.homepage)
|
|
|
+
|
|
|
+
|
|
|
+def main():
|
|
|
+ self = Chat()
|
|
|
+ self.run()
|
|
|
+ # ele_im = self.tab_home.ele('xpath://div[@data-e2e="im-entry"]')
|
|
|
+ # logger.info(f"{ele_im.html}")
|
|
|
+ # # <div class="LFWqFfyH isLight">
|
|
|
+ # has_msg_ele = ele_im.ele('xpath://div[@class="LFWqFfyH isLight"]')
|
|
|
+ # logger.info(f"{has_msg_ele.html}")
|
|
|
+
|
|
|
+if __name__ == "__main__":
|
|
|
+ main()
|