Appium-实战之滑屏

作者: 五娃儿 | 来源:发表于2017-11-15 17:13 被阅读103次

我司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

问题三:获取屏幕的宽度和高度?

样例.png
  • 总结:
    滑动相对比较核心的点就是左滑、右滑、上滑、下滑时x轴、y轴的变化规律,当掌握该规律后既可以随心所欲的滑动了。

相关文章

  • Appium-实战之滑屏

    我司app安装后,有4页的引导页,需要左滑,左滑,左滑,在左滑,然今天滑的比较“艰难”,《先看结果后看问题》。 o...

  • Appium-实战之启动App

    在尝试多天的Monkey之后,发现不能从根源上解决当前的需求,故开启Appium小白之路。 代码如下: 问题一:如...

  • 仿抖音滑屏应用开发

    滑屏应用开发 JavaScript 和 CSS3 来实现单页面应用的滑屏效果,包括上下滑屏、左右滑屏,以及局部元素...

  • CocosCreator中,获取滑屏方向:上下左右

    说明 在单指滑屏结束后,给出本次滑屏朝向:上、下、左、右 使用示意 关注滑屏事件:SlideScreenEvent...

  • 划屏胶条--手机刷屏神器专用胶头

    划屏器胶条 自动刷频胶条 导电硅胶头条 手机滑屏条 橡胶滑屏头

  • 滑屏偶见

    秋风凉透树骨,雨打一池残荷,蝉鸣声渐慢。 闲翻滑屏乱,偶见桃花深处,几座青瓦白墙岸。 闹市游走心疲脚懒,顿觉香气扑...

  • 滑屏偶感

    谁道闲无趣,怎堪春已响。 拥屏惜眼前,闭户思时往。 末岁谢梅妆,初心怜幻想。 修禅不问天,奈我青丝纺。

  • SwiftUI 精品之App截屏并微信、相册分享ScrollVi

    实战需求 SwiftUI 精品之App截屏并微信、相册分享ScrollView 本文价值与收获 看完本文后,您将能...

  • kotiln实现滑屏界面(图片切换)

    kotiln实现滑屏界面(图片切换) 首先我们先来看一下Java的滑屏是怎样实现的。 /** * create b...

  • 仿探探滑屏交互

    探探滑屏交互 页面布局: 样式设置 动画实现通过js实现卡片样式的初始化 touch事件 滑屏移出卡片 效果预览:...

网友评论

    本文标题:Appium-实战之滑屏

    本文链接:https://www.haomeiwen.com/subject/dfchvxtx.html