ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

6.25__app定位元素(5)

2022-06-28 17:05:37  阅读:157  来源: 互联网

标签:__ get app swipe 6.25 sleep dx duration 1000


app屏幕滑动定位(swipe方法)
 一、swipe语法

swipe语法:

格式:Swipe(int start x,int start y,int end x,int y,time)#参数的个数根据实际情况使用
解释:
 int start x-开始滑动的x坐标,
   int start y -开始滑动的y坐标。
   int end x -结束点x坐标,
   int end y -结束点y坐标。
   time 滑动时间(默认5毫秒)
给swipe指定坐标,因为每个手机的屏幕分辨率不一样,指定一个固定的坐标,并不是适用所有手机,所以这里可以通过获取手机屏幕坐标实现,提升代码重用。

python-appium手机自动测试如何实现滑动呢,在webdriver 的api中只提供了指定两个坐标的滑动,但不同的手机分辨率不同,这样写出来的自动化脚本兼容性就不是那么好了。。那么怎么实现滑动呢,仔细看了下webdriber中的方法,发现有个方法get_window_size() ,这个方法可以获得手机的宽度和高度,这样我们就可以实现按屏幕比率滑动了。

具体方法如下:

dx=d.get_window_size()   #获取屏幕的高度和宽度
print(dx)


首先我们给定固定三个参数:0.5  0.25  0.75,(参数合理就好)因为不管向上向下还是向左向右滑,他们的参数都在由大到小变化或者由小到大的变化

理解下下面的图:
1、屏幕的坐标图,向上滑动屏幕就是x轴不变,y轴由大到小的变化过程:
2、屏幕的坐标图,向下滑动屏幕就是x轴不变,y轴由小到大的变化过程
3、屏幕的坐标图,向左滑动屏幕就是y轴不变,x轴由大到小的变化过程
4、屏幕的坐标图,向右滑动屏幕就是y轴不变,x轴由小到大的变化过程

 

 

 

图的理解:当前屏幕的参数跟着当前滑动屏幕的参数走,在屏幕滑动时在屏幕上下选个参考物做讲解
案例:

from appium  import   webdriver
from time import *
cs={
'platformName':'Android',#平台系统: Android or los
'deviceName':'OPPO R11',#设备名称SM-G9350
'platformVersion':'android-4.4W', #平台版本
'appPackage':'com.baidu.yuedu',#包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串
}
d=webdriver.Remote('http://127.0.0.1:4723/wd/hub',cs)
sleep(10)
d.find_element_by_id('com.baidu.yuedu:id/righttitle').click() #点击图书
sleep(4)
dx=d.get_window_size()
print(dx)
x=dx.get('width')*0.9 #x最大值
x1=dx.get('width')*0.1 #x最小值
y=dx.get('height')*0.9 #y最大值
y1=dx.get('height')*0.1 #y最小值
zjx=dx.get('width')*0.5
zjy=dx.get('height')*0.5
#左滑
d.swipe(x,y,x1,y,duration=1000)
sleep(5)
d.swipe(x,y,x1,y,duration=1000)
sleep(5)
#向上滑
d.swipe(x,y,x,y1,duration=1000)
sleep(5)
d.swipe(x,y,x,y1,duration=1000)
sleep(5)
d.swipe(x,y,x,y1,duration=1000)
sleep(5)
# 向下滑
d.swipe(zjx,y1,zjx,y,duration=1000)
sleep(5)
d.swipe(zjx,y1,zjx,y,duration=1000)
sleep(5)
d.swipe(zjx,y1,zjx,y,duration=1000)
# 右滑
sleep(5)
d.swipe(x1,zjy,x,zjy,duration=1000)
sleep(5)
d.swipe(x1,zjy,x,zjy,duration=1000)
sleep(5)
============================================
案例2:
aa文件
from appium  import   webdriver
from gs2_sql.bb import *
from time import *
cs={
'platformName':'Android',#平台系统: Android or los
'deviceName':'OPPO R11',#设备名称SM-G9350
'platformVersion':'android-4.4W', #平台版本
'appPackage':'com.baidu.yuedu',#包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串
}
d=webdriver.Remote('http://127.0.0.1:4723/wd/hub',cs)
sleep(10)
d.find_element_by_id('com.baidu.yuedu:id/righttitle').click() #点击图书
sleep(4)
z(d,2)
s(d,1)
x(d,1)
y(d,1)

bb文件:
from  time import  *
#左滑
def z(d,t=1):
for i in range(t):
dx = d.get_window_size()
x = dx.get('width') * 0.9 # x最大值
x1 = dx.get('width') * 0.1 # x最小值
y = dx.get('height') * 0.5 #
d.swipe(x,y,x1,y,duration=1000)
sleep(3)
#右滑
def y(d,t=1):
for i in range(t):
dx = d.get_window_size()
x = dx.get('width') * 0.9 # x最大值
x1 = dx.get('width') * 0.1 # x最小值
y = dx.get('height') * 0.5 #
d.swipe(x1,y,x,y,duration=1000)
sleep(3)
#上滑
def s(d,t=1):
for i in range(t):
dx = d.get_window_size()
x = dx.get('width') * 0.5 # x最大值
y = dx.get('height') * 0.1 # x最小值
y1 = dx.get('height') * 0.9 #
d.swipe(x,y1,x,y,duration=1000)
sleep(4)

#向下滑
def x(d,t=1):
for i in range(t):
dx = d.get_window_size()
x = dx.get('width') * 0.5 # x最大值
y = dx.get('height') * 0.1 # x最小值
y1 = dx.get('height') * 0.9 #
d.swipe(x,y,x,y1,duration=1000)
sleep(3)

 注意:修改下边距的数据

如下:

from  time import  *
#左滑
def z(d,t=1):
for i in range(t):
dx = d.get_window_size()
x = dx.get('width') * 0.9 # x最大值
x1 = dx.get('width') * 0.1 # x最小值
y = dx.get('height') * 0.5 #
d.swipe(x,y,x1,y,duration=1000)
sleep(3)
#右滑
def y(d,t=1):
for i in range(t):
dx = d.get_window_size()
x = dx.get('width') * 0.9 # x最大值
x1 = dx.get('width') * 0.1 # x最小值
y = dx.get('height') * 0.5 #
d.swipe(x1,y,x,y,duration=1000)
sleep(3)
#上滑
def s(d,t=1):
for i in range(t):
dx = d.get_window_size()
x = dx.get('width') * 0.5 # x最大值
y = dx.get('height') * 0.1 # x最小值
y1 = dx.get('height') * 0.9 #
d.swipe(x,y1,x,y,duration=1000)
sleep(4)

#向下滑
def x(d,t=1):
for i in range(t):
dx = d.get_window_size()
x = dx.get('width') * 0.5 # x最大值
y = dx.get('height') * 0.25 # x最小值
y1 = dx.get('height') * 0.75#
d.swipe(x,y,x,y1,duration=1000)
sleep(4)

标签:__,get,app,swipe,6.25,sleep,dx,duration,1000
来源: https://www.cnblogs.com/xukairoot/p/16420160.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有