全网最新最全面的Appium自动化:Appium常用操作之点击&滑动类操作

点击&滑动类操作

  在进行app自动化的时候,经常会进行点击或滑动的操作,比如点击坐标,左右滑动,上下滑动等,Appium相应提供了解决方案。

坐标的开启步骤:

开发者选项——指针位置开启

坐标展示:

在flick和swipe中都提到了坐标,android界面坐标可以通过如下方式进行获取:

1、uiautomatorviewer或inspector工具识别元素时的bounds属性

2、通过android系统自带的工具,进入设置--开发者选项--指针位置

常用的API如下:

一、点击类操作

通过坐标进行点击操作:

1、tap(self,positions,duration=None):模拟手指点击(最多五个手指),可设置按住时间长度(毫秒)

positions:list类型,里面对象是元组,最多五个。如:[(100,20),(100,60)]

duration:持续时间,单位毫秒,如:500

代码示例:

from appium import webdriver  # 导入appium 驱动包
des = {
    'platformName':'Android',
    'platformVersion':'6.0.1',  # 填写android虚拟机/真机的系统版本号
    'deviceName':'MuMu',      # 填写安卓虚拟机/真机的设备名称
    'appPackage':'com.android.settings',    # 填写被测app包名
    'appActivity':'.Settings',    # 填写被测app的入口
    'udid':'127.0.0.1:7555',    # 填写通过命令行 adb devices 查看到的udid
    'noReset':True,               # 是否重置APP
    'unicodeKeyboard':True,       # 是否支持中文输入
    'resetKeyboard':True,         # 是否支持重置键盘
    'newCommandTimeout':30        # 30秒没发送新命令就断开连接
       }

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',des)

# 指定坐标点击
driver.tap([(300,1020)],2000)  # 模拟手指轻轻的点击
# 三个坐标同时点击
driver.tap([(300,1020),(300,550),(380,1450)],2000)  # 模拟手指轻轻的点击

注:由于不同手机的分辨率不同,导致通过坐标进行点击会出现不稳定的情况

解决坐标点击对于不同手机不稳定的方法:

使用driver.get_window_size()  获取屏幕尺寸,然后通过百分比确定坐标,进行等比例换算

示例代码:

# driver.tap([(300,1020)])  # 原先元素的坐标
print(300/size['width'],1020/size['height'])  # 得到一个百分比 0.27  0.5
driver.tap([(int(size['width']*0.27),int(size['height']*0.5))])  # 通过百分比换算的元素坐标

二、滑动类操作

通过元素进行滑动操作

1、scroll(self,origin_el,destination_el,duration=None):模拟从元素origin_el滚动至元素destination_el

代码示例:

e1 = driver.find_element(By.XPATH,'//android.widget.TextView[@text="显示"]')
e2 = driver.find_element(By.XPATH,'//android.widget.TextView[@text="电池"]')
driver.scroll(e2,e1)  # 从元素e2 滑动到元素e1,实现向下滑动

通过元素进行拖动操作

2、drag_and_drop(self,origin_el,destination_el):将元素origin_el拖到目标元素destination_el

代码示例:

e1 = driver.find_element(By.XPATH,'//android.widget.TextView[@text="显示"]')
e2 = driver.find_element(By.XPATH,'//android.widget.TextView[@text="电池"]')
driver.drag_and_drop(e2,e1)  # 拖动(与scroll方法效果一样)

通过坐标进行滑动操作

3、flick(self,start_x,start_y,end_x,end_y):按住A点后快速滑动至B点,A点的坐标为start_x,start_y,B点的坐标为end_x,end_y,使用flick方法进行滑动偶尔出现不稳定,可以把flick方法中的press改为long_press解决。

press:moveto中endx,endy是相对startx,start_y的偏移量并存在随机滑动加速度或缓冲滑动

long_press:moveto中endx,endy是绝对值。

flick方法进行滑动偶尔出现不稳定,修改flick方法中的press改为long_press解决

修改前:                                             修改后:

   

              

 代码示例:

driver.flick(300,1020,300,550)  # 通过坐标进行滑动操作

通过坐标进行滑动操作并有滑动时间控制

4、swipe(self,start_x,start_y,end_x,end_y,duration=None):从A点滑动至B点,滑动时间为毫秒,A点的坐标为start_x,start_y,B点的坐标为end_x,end_y

利用swipe方法实现滑动举例
下滑操作:
x=driver.get_window_size()['width']
y=driver.get_window_size()['height']
driver.swipe(x/2,y/2,x/2,y/4,0) #上滑相反坐标即可(采用绝对坐标)

左滑操作:
driver.press_keycode(3)
x=driver.get_window_size()['width']
y=driver.get_window_size()['height']
driver.swipe(x/4*3,y/2,x/4*1,y/2,0)

代码示例:

# 滑动操作--推荐使用该方法
driver.swipe(300,1020,300,550,5000)  # 通过坐标进行滑动操作滑动时间为3秒

注:由于不同手机的分辨率不同,导致通过坐标进行滑动会出现不稳定的情况

解决坐标滑动对于不同手机不稳定的方法:

使用driver.get_window_size()  获取屏幕尺寸,然后通过屏幕的比例滑动

代码示例:

# 从屏幕四分之三的位置滑动到四分之一的位置
driver.swipe(size['width']/2,size['height']*3/4,size['width']/2,size['height']*1/4,2000)

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Appium进行滑动操作时,可以使用封装好的滑动工具app_swipe来实现。首先,需要导入滑动工具和驱动实体。然后,通过操作APP将焦点定位到目标元素,比如"日期和时间"元素。如果目标元素没有显示在界面上,可以执行向上滑动操作,直到目标元素显示并成功定位到该元素。然后执行点击操作,退出循环,即可执行更多的操作。最后,关闭APP。\[1\] 在具体的滑动操作中,可以使用swipe方法来实现滑动。例如,下滑操作可以通过获取窗口的宽度和高度,然后使用绝对坐标来执行滑动操作。上滑操作与下滑操作相反。\[2\] 另外,还可以使用scroll方法来实现滑动操作。通过定位到起始元素和目标元素,可以实现从起始元素滑动到目标元素,从而实现向下滑动操作。\[3\] #### 引用[.reference_title] - *1* [『与善仁』Appium基础 — 26、滑动方法综合练习](https://blog.csdn.net/Liuyuelinjiayou/article/details/110597726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Appium自动化(12):Appium常用操作点击&滑动操作](https://blog.csdn.net/YouJeffrey/article/details/130902139)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值