[607]appium根据屏幕大小滑动界面|通过坐标定位元素
文章目录
- appium根据屏幕大小滑动界面
- 通过坐标定位元素
appium根据屏幕大小滑动界面
driver.get_window_size()
获取屏幕的宽、高;
driver.swipe()
从坐标1滑动到坐标2,t毫秒时间内完成。
上下滑动时,坐标的x值可以不变,只改变坐标y值的大小。
左右滑动时,坐标的y值可以不变,只改变坐标x值的大小。
上下滑动的代码:
def test_contactlistswipe(self): try: #等待列表出现,超时为6s WebDriverWait(self.driver,6).until(EC.visibility_of_element_located((By.ID,"com.android.contacts:id/menu_search"))) print(self.driver.get_window_size()) x = self.driver.get_window_size()['width'] y = self.driver.get_window_size()['height'] print(x,y) #上滑 self.driver.swipe(x/2,y*3/4, x/2, y/4, 200) #self.driver.swipe(100, 1400, 100, 800, 200) sleep(5) #下滑 self.driver.swipe(x/2,y/4, x/2, y*3/4, 200) except Exception,e: print (e )else: print("run sucess swipe up and down " )
通过坐标定位元素
用appium做自动化时发现,有一些元素无法通过uiautomatorviewer进行定位,比如h5页面元素或者有的app元素在uiautomatorviewer中的属性没有唯一标识,这种情况下就只能通过相对坐标来进行定位了。
如何获取元素的坐标呢?
具体方法:手机设置–开发者选项–指针位置
开启指针位置之后,点击手机屏幕就会显示该位置的具体坐标,这样就获取到了元素的绝对坐标,然后通过webdriver的tap()函数点击该坐标就可以了。
但是此时,我们获取到的是绝对坐标,如果换一个屏幕分辨率不同的手机那这个坐标自然会发生变化,要实现不同手机均能实现点击同一控件就要用到相对坐标了,具体方法如下:
1、获取需定位元素的绝对坐标(x1,y1),开启指针位置后,通过点击定位元素位置获取坐标;
2、获取测试手机的屏幕大小(x2,y2),开启指针位置后,点击手机屏幕右下角,获取坐标
3、得出该定位元素的相对位置坐标系x=x1/x2,y=y1/y2(控件在当前手机的坐标位置除以当前手机的最大坐标就是相对的系数)
4、获取当前手机的屏幕大小(n,m),通过driver.get_window_size()['width'],dirver.get_window_size()['height']
分辨获取当前手机的n、m坐标;
5、获取指定控件在测试手机中的坐标:(x*n,y*m)
6、获取到坐标之后同样使用tap()函数点击该控件。
代码实现如下:
def taptest(driver):# 设定系数,控件在当前手机的坐标位置除以当前手机的最大坐标就是相对的系数了a1 = 188.8/1069b1 = 941.5/1916# 获取当前手机屏幕大小X,YX = driver.get_window_size()['width']Y = driver.get_window_size()['height']# 屏幕坐标乘以系数即为用户要点击位置的具体坐标driver.tap([(a1*X, b1*Y)])
方法一:
driver.tap([(x1,y1),(x2,y2)], duration):在指定范围内点击
[(x1,y1),(x2,y2)]:坐标范围
duration:持续时间,单位是ms,默认为None,可以省略
方法二:
driver.tap([(x1,y1)],duration):在指定坐标点进行点击
[(x1,y1)]:坐标点
参考:https://blog.csdn.net/hdandan2015/article/details/78720087
https://blog.csdn.net/qw943571775/article/details/104375737
https://blog.csdn.net/chengdiyiyo/article/details/121469809
[607]appium根据屏幕大小滑动界面|通过坐标定位元素相关推荐
- Appium相对坐标定位元素
Appium当前页面为h5页面,UIAutomatorviewer无法获取页面来定位元素,通过坐标模拟点击手机屏幕定位 自动化环境 设备:Android 脚本语言:Python 元素定位 手机坐标定位 ...
- appium通过坐标定位元素
用appium做自动化时发现,有一些元素无法通过uiautomatorviewer进行定位,比如h5页面元素或者有的app元素在uiautomatorviewer中的属性没有唯一标识,这种情况下就只能 ...
- appium使用相对坐标定位元素
最近在用appium做自动化时发现,有一些元素无法通过uiautomatorviewer进行定位,这样就只能通过相对坐标来进行定位了.但是,问题又来了:如何获取元素的坐标呢? 在网上找了半天也没找到相 ...
- Python+Appium自动化测试-通过坐标定位元素
在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素. 1,通过绝 ...
- 【Python+Appium】开展自动化测试(十二)通过坐标定位元素
目录 前言 1,通过绝对坐标定位(不推荐) 2,通过相对坐标定位(推荐) 写在最后 前言 在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能 ...
- appium+python测试app使用相对坐标定位元素
我们获取到的是绝对坐标,如果换一个屏幕分辨率不同的手机那这个坐标自然会发生变化,要实现不同手机均能实现点击同一控件自然要用到相对坐标了,具体方法如下: 1.获取当前空间的绝对坐标(x1,y1),开启指 ...
- 【Appium】如何配置真机连接及定位元素
目录 一.真机配置 1.使用数据线连接真机与电脑. 2.开启开发者模式 3.开启USB调试 二.编写脚本 1.修改deviceName 2.修改platformVersion 3.appPackage ...
- android学习笔记---49_屏幕适配,根据不同手机屏幕大小适配软件界面
2013/5/12 49_屏幕适配 ----------------------- 1.根据手机屏幕的大小自动显示软件界面的大小 2.这里用480x320和320x240这两种屏幕大小举例. ---- ...
- Appium 屏幕页面滑动(swipe函数实现)
Appium 屏幕页面滑动(swipe函数实现) 一.简介 在Appium中进行屏幕页面的滑动操作,我们可以使用其提供的swipe函数来实现,使用此函数,我们只需要提供起始(x,y)坐标值和滑动结束的 ...
最新文章
- nginx缓存功能的设置
- php和python哪个学起来简单一点-Php和python php和python哪个容易学
- 数据结构之堆的插入、取值、排序(细致讲解+图片演示)
- Python项目实践:霍兰德人格分析雷达图
- win7 64位系统没有语音识别,该如何解决?
- tensorflow loss到多少_tensorflow学习笔记day4
- Matlab图像处理函数:regionprops
- 解决 IDEA导入Eclipse项目出现的中文注释乱码问题
- 用虚拟串口进行串口调试
- 插件开发之360 DroidPlugin源码分析(四)Activity预注册占坑
- Java 学习如逆水行舟,不进则退,100 本 java 电子书推荐
- 基于sklearn的线性分类器
- 计算机控制实验报告组态软件学习,单片机与MCGS组态综合实验系统 教学软件 实训系统...
- excel使用mysql数据库查询语句_如何通过Excel查询MySQL数据库
- 谷歌地图的标记样式_如何为Google地图设置样式
- 删除 Microsoft Office Word 中页眉、页脚的横线
- TestNG教程二:testNG常用测试类型
- 阿里云ARM服务器通用型g6r实例CPU性能参数详解
- Oracle递归的实现
- 免费开源的几款Web服务器软件简介