坚持原创输出,点击蓝字关注我吧
![d2db1e38b42cf680f5dfa5ccbfc0f794.png](https://i-blog.csdnimg.cn/blog_migrate/17497c212de29e01386b921084056fc1.png)
作者:清菡
博客:oschina、云+社区、知乎等各大平台都有。
目录
- 一、滑屏操作
- 1.访问之后,马上就滑屏可以吗?
- 2.连续实现 2 次滑屏
- 3.代码
- 二、模拟触屏
- 1.短按和点击的区别?
- 2.用坐标还是元素?
- 3.引入 TouchAction
- 4.每个行为函数都有 3 个参数
- 5.首先确定每一个点的位置
- 6.代码
- 三、注意
一、滑屏操作
不需要看到欢迎页面,直接做里面的后续操作就好了。也就是我想记住一些用户的习惯,不要像第一次访问一样,有一个重置与否
,给它关闭了。
# 重置与否
desired_caps["noReset"]=True
1.访问之后,马上就滑屏可以吗?
不可以。先等待首页有个元素出现,再去滑屏。滑屏操作需要时间,模拟器或者真机执行操作更需要时间。如果直接滑动 2 次,第一次滑动效果还没展示出来就直接滑动第二次了,就会看到看不懂的现象。所以这种情况下就要加上time
。
2.连续实现 2 次滑屏
#从右向左滑
driver.swipe(start_x,start_y,end_x,end_y,200)
time.sleep(1)
driver.swipe(start_x,start_y,end_x,end_y,200)
3.代码
# 微信app 安卓
from appium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from appium.webdriver.common.mobileby import MobileBy
desired_caps={}
# 平台类型
desired_caps["platformName"]="Android"
# 平台版本号
desired_caps["platformVersion"]="7.0"
# 设备名称
desired_caps["deviceName"]="XPUDU17713003790"
# app 包名
desired_caps["appPackage"]="com.tencent.mm"
# app 入口 acitivity
desired_caps["appActivity"]="com.tencent.mm.ui.LauncherUI"
# 重置与否
desired_caps["noReset"]=True
# aapt dump badging 包名
# 连接Appium server。前提:appium desktop要启动。有监听端口。
# 将desired_caps发送给appium server。打开app
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
# ANDROID_UIAUTOMATOR 这个是一种定位表达式,用其它的表达式也是可以的。
loc=(MobileBy.ANDROID_UIAUTOMATOR,'new UiSelector().text("通讯录")')
WebDriverWait(driver,30).until(EC.visibility_of_element_located(loc))
#height、width
size= driver.get_window_size()
start_x=size['width']*0.9
start_y=size['height']*0.5
end_x=