Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c01e500

Browse files
committed
no message
1 parent a908aac commit c01e500

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

‎moumoubaimifan/antforest/antForest.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
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 selenium.webdriver.support import expected_conditions as EC
7+
8+
from appium.webdriver.common.touch_action import TouchAction
9+
10+
desired_capabilities = {
11+
'platformName': 'Android', # 操作系统
12+
'deviceName': '2a254a02', # 设备 ID
13+
'platformVersion': '10.0.10', # 设备版本号,在手机设置中查看
14+
'appPackage': 'com.eg.android.AlipayGphone', # app 包名
15+
'appActivity': 'AlipayLogin', # app 启动时主 Activity
16+
'noReset': True # 是否保留 session 信息 避免重新登录
17+
}
18+
19+
# 判断元素是否存在
20+
def is_element_exist_by_xpath(driver, text):
21+
try:
22+
driver.find_element_by_xpath(text)
23+
except Exception as e:
24+
return False
25+
else:
26+
return True
27+
28+
# 收取能量
29+
def collect_energy(driver, width, height):
30+
# 能量球可能出现的区域坐标
31+
start_x = 150
32+
end_x = 900
33+
start_y = 540
34+
end_y = 900
35+
36+
for x in range(start_x, end_x, 50):
37+
for y in range(start_y, end_y, 50):
38+
x_scale = int((int(x) / width) * width)
39+
y_scale = int((int(y) / height) * height)
40+
# 点击指定坐标
41+
TouchAction(driver).press(x=x_scale, y=y_scale).release().perform()
42+
print('能量收取完毕')
43+
44+
def search_energy(driver, width, height):
45+
46+
x = int((int(1000) / width) * width)
47+
y = int((int(1550) / height) * height)
48+
# 点击指定坐标
49+
TouchAction(driver).press(x=x, y=y).release().perform()
50+
time.sleep(1)
51+
is_collected = is_element_exist_by_xpath(driver, '//android.widget.Button[contains(@text, "返回我的森林")]')
52+
if is_collected:
53+
print('能量全部收集完毕')
54+
return
55+
56+
collect_energy(driver, width, height)
57+
search_energy(driver, width, height)
58+
59+
60+
61+
if __name__ == '__main__':
62+
63+
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities)
64+
print('支付宝启动')
65+
# 设置等待超时时间
66+
wait = WebDriverWait(driver, 60)
67+
68+
wait.until(EC.element_to_be_clickable((By.ID, 'com.alipay.android.phone.openplatform:id/more_app_icon'))).click()
69+
wait.until(EC.element_to_be_clickable((By.XPATH, '//android.widget.TextView[contains(@text, "蚂蚁森林")]'))).click()
70+
time.sleep(3)
71+
# 获取手机屏幕宽高
72+
width = int(driver.get_window_size()['width'])
73+
height = int(driver.get_window_size()['height'])
74+
75+
collect_energy(driver, width, height)
76+
77+
search_energy(driver, width, height)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /