• Appium移动端自动化:Api接口详解


    滑动操作与拖拽操作

    # 滚动处理
    # elementObj1 目标滚动元素,elementObj2 起始滚动元素
    # 底层通过action操作,与web ui相反,origin_el为目标元素,destination_el为起始元素
    # 通过模拟手势可以看出 从下面的元素移动到上面的元素
    # action.press(origin_el).move_to(destination_el).release().perform()
    # web elementObj1为要移动的元素 elementObj2为移动到某个元素
    # action.click(elementObj1).move_to_element(elementObj2).release().perform()
    driver.scroll(elementObj1, elementObj2)
     
    #通过坐标实现滑屏操作
    # 从手机的左上角开始,横坐标为x轴,纵坐标为y
    # 分辨率不同,坐标不相同,所以需要根据屏幕的大小做比例运算
    driver.swipe(start_x, start_y, end_x, end_y,duration=None)
     
    # 拖拽
    # elementObj1源元素,elementObj2目标元素
    # 通过long_press实现
    driver.drag_and_drop(elementObj1, elementObj2)
     
     
    # 多点触控 模拟手指点击
    # tap模拟按住坐标多少秒,[(x,y)] 多个坐标则写多个元祖。参数2为按住多少秒。ms(毫秒)为单位
    driver.tap([(x, y)], 5000)
    # 通过坐标实现滑屏操作----------------------------------------
    size = driver.get_window_size()#查看屏幕大小
    # print(size)
    width = size.get('width')
    height = size.get('height')
    y1 = height * 0.8#标记滑动起始位置
    x1 = width * 0.5
    y2 = height * 0.2#标记滑动最终位置
    x2 = width * 0.5
    driver.swipe(x1,y1,x2,y2)

    操作APP

    # 返回是否安装了对应包名的App True 或者 False
    driver.is_app_installed('com.syqy.wecash')
     
    # 关闭初始化信息中的App
    driver.close_app()
     
    # 启动初始化信息中的App
    driver.launch_app()
     
    # 安装app 参数为软件的绝对路径
    driver.install_app(r'C:UsersjhouyafanDesktop	esterappUiwecash.apk')
     
    # 卸载app 参数接收appPackageName
    driver.remove_app('com.syqy.wecash')
     
    # 获取当前打开的app名
    driver.current_activity
     
    # 启动某一个包的,某一个入口
    # 参数接受appPackage,appActivity
    # 可以省略多个步骤直接到达指定测试的位置
    driver.start_activity('com.android.browser','.BrowserActivity')
     
    # 每隔0.5秒判断一次当前的app名称是否是activityName
    # WebDriverWait
    driver.wait_activity('activityName', 5, 0.5)
     
    # 将启动的app退出到后台,多少秒后在切回app 
    driver.background_app('m')
     
    # 清除应用数据缓存,相当于卸载重装
    driver.reset()
    操作混合App的H5页面
    # 操作混合app的H5
    driver.find_element_by_id('com.android.browser:id/url').send_keys('https://m.baidu.com/?from=844b&vit=fps')#打开浏览器,输入网址
    time.sleep(2)
    driver.press_keycode(66)#这个keycode码可以使用百度搜索,66是代表回车
    
    # 打开原生app时,想操作内置的H5页面,需要先切换webview,只要切换进h5页面后就和web自动化一样
    print(driver.contexts)#查看内置H5地址
    #切换webview,必须开发开启debug模式
    driver.switch_to.context('WEBVIEW_com.android.browser')




  • 相关阅读:
    [Trie][并查集]JZOJ 5822 量子纠缠
    [模拟]JZOJ 5820 非法输入
    SAM模板
    [树形DP]JZOJ 5819 大逃杀
    [MST][dij]JZOJ 5818 做运动
    [暴力]JZOJ 5817 抄代码
    [概率期望][树形DP][LCA]JZOJ 5814 树
    认证组件
    注册接口
    视图家族 & 路由组件
  • 原文地址:https://www.cnblogs.com/haifeima/p/10240756.html
Copyright © 2020-2023  润新知