Skip to content

Commit 80ed225

Browse files
committed
no message
1 parent beedc02 commit 80ed225

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import time
2+
3+
from appium import webdriver
4+
from selenium.webdriver.common.by import By
5+
from selenium.webdriver.support.ui import WebDriverWait
6+
from appium.webdriver.common.touch_action import TouchAction
7+
from selenium.webdriver.support import expected_conditions as EC
8+
9+
desired_capabilities = {
10+
'platformName': 'Android', # 操作系统
11+
'deviceName': '2a254a02', # 设备 ID
12+
'platformVersion': '10.0.10', # 设备版本号,在手机设置中查看
13+
'appPackage': 'com.tencent.mm', # app 包名
14+
'appActivity': 'com.tencent.mm.ui.LauncherUI', # app 启动时主 Activity
15+
'noReset': True # 是否保留 session 信息 避免重新登录
16+
}
17+
18+
# 判断元素是否存在
19+
def is_element_exist_by_xpath(driver, text):
20+
try:
21+
driver.find_element_by_xpath(text)
22+
except Exception as e:
23+
return False
24+
else:
25+
return True
26+
27+
if __name__ == '__main__':
28+
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities)
29+
# 设置等待超时时间
30+
wait = WebDriverWait(driver, 60)
31+
32+
while True:
33+
time.sleep(0.5)
34+
35+
# 进入第一个聊天框
36+
red_packet_group = driver.find_elements_by_id('com.tencent.mm:id/e3x')[0]
37+
red_packet_group.click()
38+
39+
# 检查红包
40+
reds = driver.find_elements_by_id('com.tencent.mm:id/r2')
41+
if len(reds) == 0:
42+
driver.keyevent(4)
43+
else:
44+
for red in reds[::-1]:
45+
red.click()
46+
# 领取了
47+
is_open = is_element_exist_by_xpath(driver, '//android.widget.TextView[contains(@text, "已存入零钱")]')
48+
# 没抢到
49+
is_grabbed = is_element_exist_by_xpath(driver, '//android.widget.TextView[contains(@text, "手慢了")]')
50+
51+
if is_open or is_grabbed:
52+
driver.keyevent(4)
53+
else:
54+
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/den"))).click()
55+
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/dm"))).click()
56+
57+
TouchAction(driver).long_press(red).perform()
58+
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/gam"))).click()
59+
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/doz"))).click()
60+
driver.keyevent(4)

0 commit comments

Comments
 (0)