盘点Python做微信小程序自动化踩过的坑
1. 场景
2. 小程序入口
# 屏幕宽度
x = ()['width']# 屏幕高度
y = ()['height']
# 起始x轴和y轴坐标
x1 = int(x * )
y1 = int(y * )
# 终点y轴坐标
y2 = int(y * ( + step))
# 向下滑动屏幕
(x1, y1, x1, y2, 1000)
# 向下滑动屏幕
swipeDown()
# 找到目标小程序的图标元素,从顶部进入小程序
# pass
for item in chat_record_elements:
chat_record_name =
if chat_record_name == '文件传输助手':
()
break
def find_element_by_id_and_text(driver: webdriver, id, text):
"""
通过id和文本内容查找元素
:param driver:
:param id:
:param text:
:return:
"""
result = None
elements = (id)
if elements:
for item in elements:
if == text:
result = item
break
return result
# 点击小程序,进入到目标应用程序
mini_program_tag = find_element_by_id_and_text(driver, '', '160挂号丨预约健康医疗服务平台')
3. 审查网页元素

4. ChromeDriver 版本对应
appium




# 显式运行某个版本的chromedriver
appium --chromedriver-executable /Users/xingag/Desktop/test/chromedriver29
5. 上下文及进程
print()# 切换到对应Web的上下文
('')
adb shell dumpsys activity top | grep ACTIVITY
# ACTIVITY 247e612 pid=4389# 通过进程pid,即:4389,找到进程名称
adb shell ps 4389
# u0_a291 4389 318 2274008 262160 sys_epoll_ 00000000 S
# 小程序进程名:
caps = {
"platformName": "Android",
"deviceName": "ca2b3455",
"appPackage": '',
"appActivity": '.ui.LauncherUI',
"autoGrantPermissions": True,
# 指定目标小程序的进程名称
"chromeOptions": {
"androidProcess": ""
},
"noReset": True
}
6. 窗体句柄切换
"""
在webview中查找元素,涉及到切换窗口句柄:handle
:return:
"""
# 获取所有的handle
all_handles =result_element = None
for handle in all_handles:
try:
(handle)
# 查找方式
if by == :
result_element = (, selector)
elif by == :
result_element = (, selector)
print('查找成功,直接返回')
break
except Exception as e:
print('查找失败,继续查找')
pass
return result_element
7. 最后
THE END