我司app安装后,有4页的引导页,需要左滑,左滑,左滑,在左滑,然今天滑的比较“艰难”,《先看结果后看问题》。
operationApp.py的代码如下:
#coding:utf-8
# Author:dbl
import unittest
from appium import webdriver
from we.basicConfigetodevices import get_basic_config, swipe_to_left
SLEEPY_TIME = 15
SWIPE_COUNT = 4
class TouchActionTests(unittest.TestCase):
def setUp(self):
'''
启动app
:return:
'''
desired_caps1 = get_basic_config('v2.0.0.apk')
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps1)
def tearDown(self):
'''
退出
:return:
'''
self.driver.quit()
def test_swipe_app_boot_page(self):
'''
滑动4个引导页并点击开启投资按钮
:return:
'''
swipe_to_left(self.driver, num=SWIPE_COUNT)
self.driver.implicitly_wait(SLEEPY_TIME)
el = self.driver.find_element_by_name("开启投资")
el.click()
if __name__ == "__main__":
suite = unittest.TestLoader().loadTestsFromTestCase(TouchActionTests)
unittest.TextTestRunner(verbosity=2).run(suite)
basicConfigetodevices.py的代码如下:
#coding:utf-8
# Author:xxx
import os
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(__file__), p)
)
SLEEPY_TIMES = 5
def get_basic_config(app):
'''
udid信息、包名、Activity
:param app:
:return:
'''
desired_caps = {
'platformName': 'Android',
'platformVersion': '4.4',
'deviceName': '手机的udid',
'app': PATH('./app/' + app),
'appPackage': 'package',
'appActivity': '启动的Activity',
'noSign': True ,
'unicodeKeyboard':True,
'resetKeyboard': True
}
return desired_caps
def get_size(driver):
'''
获取链接手机的屏幕大小
:param driver:
:return:
'''
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
return (x,y)
def swipe_to_left(driver,num=1):
'''
左滑操作
:param driver:
:param num: 左滑的个数
:return:
'''
m, n = get_size(driver)
for i in range(0, num, 1):
driver.swipe(m * 0.9, n / 2, m / 5, n / 2, 500)
driver.implicitly_wait(SLEEPY_TIMES)
问题一:如何实现左滑操作?
- 通过swipe实现(swipe不是实现滑动的唯一方式哦)
Swipe(int start x,int start y,int end x,int y,duration)
说明:
int start x-开始滑动的x坐标
int start y-开始滑动的y坐标
int end x -结束点x坐标
int end y -结束点y坐标;
duration - 滑动时间(默认5毫秒)
Ps:duration 的值设置500-1000比较合理,此值太小,无法看到效果
问题二:如何确定开始坐标点和结束坐标点?
-
如图所示,左上角的顶点(0,0)右下角为屏幕像素的值,例如是用的测试机的屏幕像素为720*1280,则右下角的坐标为(720,1280)。
Ps:滑动分为左滑、右滑、上滑、下滑四个方向,其中x轴、y轴的值的变化可参考图片。
图丑对付看吧.png
-
实现样例:
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps1)
num 是引导页的个数或者说需要滑动的次数。
image.png
问题三:获取屏幕的宽度和高度?
- 通过 get_window_size()函数
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps1)
样例.png
- 总结:
滑动相对比较核心的点就是左滑、右滑、上滑、下滑时x轴、y轴的变化规律,当掌握该规律后既可以随心所欲的滑动了。











网友评论