haha
This commit is contained in:
@@ -168,11 +168,14 @@ class BossRecruitHandler(BaseTaskHandler):
|
|||||||
else:
|
else:
|
||||||
self.logger.info("[%s] 已有招呼记录,跳过", name)
|
self.logger.info("[%s] 已有招呼记录,跳过", name)
|
||||||
|
|
||||||
# 询问微信号
|
# 与本地自动化.py一致:没有联系方式时,发送询问并触发“换微信”
|
||||||
if not ctx["already_asked_wechat"]:
|
if not ctx["wechats"] and not ctx["phones"]:
|
||||||
if self._send_message(tab, inp, ask_wechat):
|
if self._send_message(tab, inp, ask_wechat):
|
||||||
self.logger.info("[%s] 已询问微信号", name)
|
self.logger.info("[%s] 已询问微信号", name)
|
||||||
human_delay(1.5, 2.8)
|
human_delay(1.2, 2.2)
|
||||||
|
if self._try_exchange_wechat(tab):
|
||||||
|
self.logger.info("[%s] 已执行换微信", name)
|
||||||
|
human_delay(1.2, 2.2)
|
||||||
|
|
||||||
# 收集微信号
|
# 收集微信号
|
||||||
human_delay(1.0, 2.0)
|
human_delay(1.0, 2.0)
|
||||||
@@ -255,6 +258,8 @@ class BossRecruitHandler(BaseTaskHandler):
|
|||||||
human_delay(0.15, 0.4)
|
human_delay(0.15, 0.4)
|
||||||
inp.input(message)
|
inp.input(message)
|
||||||
human_delay(0.4, 0.9)
|
human_delay(0.4, 0.9)
|
||||||
|
if self._click_send_button_like_script(tab):
|
||||||
|
return True
|
||||||
if self._click_send_button(tab):
|
if self._click_send_button(tab):
|
||||||
return True
|
return True
|
||||||
inp.input("\n")
|
inp.input("\n")
|
||||||
@@ -263,6 +268,51 @@ class BossRecruitHandler(BaseTaskHandler):
|
|||||||
except Exception:
|
except Exception:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def _click_send_button_like_script(self, tab) -> bool:
|
||||||
|
"""Use the same selector style as 自动化.py for the send button."""
|
||||||
|
text_send = "\u53d1\u9001"
|
||||||
|
try:
|
||||||
|
btn = tab.ele(f"x://div[text()=\"{text_send}\"]", timeout=1)
|
||||||
|
if btn and safe_click(tab, btn):
|
||||||
|
return True
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
btn = tab.ele(f"x://span[text()=\"{text_send}\"]", timeout=1)
|
||||||
|
if btn and safe_click(tab, btn):
|
||||||
|
return True
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
return False
|
||||||
|
|
||||||
|
def _try_exchange_wechat(self, tab) -> bool:
|
||||||
|
"""
|
||||||
|
Click '换微信', then confirm the '确定与对方交换微信吗?' dialog.
|
||||||
|
"""
|
||||||
|
text_change = "\u6362\u5fae\u4fe1"
|
||||||
|
tip_cn = "\u786e\u5b9a\u4e0e\u5bf9\u65b9\u4ea4\u6362\u5fae\u4fe1\u5417\uff1f"
|
||||||
|
tip_en = "\u786e\u5b9a\u4e0e\u5bf9\u65b9\u4ea4\u6362\u5fae\u4fe1\u5417?"
|
||||||
|
|
||||||
|
try:
|
||||||
|
human_delay(0.8, 1.6)
|
||||||
|
btn = tab.ele(f"x://span[text()=\"{text_change}\"]", timeout=1)
|
||||||
|
if not btn or not safe_click(tab, btn):
|
||||||
|
return False
|
||||||
|
|
||||||
|
human_delay(0.8, 1.6)
|
||||||
|
confirm = tab.ele(
|
||||||
|
f"x://span[contains(text(),\"{tip_cn}\")]/../div[@class=\"btn-box\"]/span[contains(@class,\"boss-btn-primary\")]",
|
||||||
|
timeout=2,
|
||||||
|
)
|
||||||
|
if not confirm:
|
||||||
|
confirm = tab.ele(
|
||||||
|
f"x://span[contains(text(),\"{tip_en}\")]/../div[@class=\"btn-box\"]/span[contains(@class,\"boss-btn-primary\")]",
|
||||||
|
timeout=2,
|
||||||
|
)
|
||||||
|
return bool(confirm and safe_click(tab, confirm))
|
||||||
|
except Exception:
|
||||||
|
return False
|
||||||
|
|
||||||
def _click_send_button(self, tab) -> bool:
|
def _click_send_button(self, tab) -> bool:
|
||||||
human_delay(0.2, 0.45)
|
human_delay(0.2, 0.45)
|
||||||
btn = find_element(tab, [
|
btn = find_element(tab, [
|
||||||
|
|||||||
Reference in New Issue
Block a user