zoukankan      html  css  js  c++  java
  • APP自动化(java和python)——参考——appium参考——操作方法参考——转载

    转载:https://www.jianshu.com/p/b41d63f92b0d

     

    下面是一些Python脚本中操作app的用法:
    
    检查app安装情况(返回true/false), driver.is_app_installed(package_name)
    
    安装app driver.install_app("x:/xxx.apk")
    
    卸载app driver.remove_app(package_name)
    
    打开通知栏 driver.open_notifications()
    
    关闭app driver.close_app()
    
    启动app driver.launch_app()
    
    锁定屏幕x秒(不是很好用,锁定后屏幕无法解锁,导致无法后续,本人未找到解锁的方法) driver.lock(X)
    
    模拟摇晃设备 driver.shake
    
    重置应用 driver.resetApp()
    
    检查是否存在某个activity(未找到则返回异常) driver.find_element_by_id(activity)
    
    获取当前的activity: activity = self.driver.current_activity print(u"当前的activity是:", activity)
    
    等待activity启动直到x秒超时,每隔y秒扫描一次 driver.wait_activity(activity, x, y)
    
    将app置于后台运行x s(注意:测试发现置于后台数秒后变为前台时,将是重新启动app,进入首页,而不是切入后台时的界面) driver.background_app(x)
    
    打印可用的输入法 IME_LISE = driver.available_ime_engines print(IME_LISE)
    
    检查设备是否有输入法服务活动,返回True/False driver.is_ime_active()
    
    激活安卓设备中的指定输入法(设备可用输入法可以从“available_ime_engines”获取)") driver.activate_ime_engine(IME_LISE[-1])
    
    退出键盘 driver.hide_keyboard()

     

     

    Appium 客户端的操作

    **锁定解锁屏幕 **
    driver.lock(5)


    将把当前应用放到后台 5 秒
    driver.background_app(5)


    收起键盘 
    driver.hide_keyboard()


    启动 ACTIVITY
    在当前应用中打开一个 activity 或者启动一个新应用并打开一个 activity 。 只能在 Android 上使用
    driver.start_activity('com.example.android.apis', '.Foo')


    打开下拉通知栏 只能在 Android 上使用
    driver.open_notifications()

    检查应用是否已经安装 
    driver.is_app_installed('com.example.android.apis')


    安装应用
    driver.install_app('path/to/my.apk')


    删除应用 
    driver.remove_app('com.example.android.apis')

    摇晃 (SHAKE) 
    driver.shake()


    关闭应用 
    driver.close_app()

    启动 (LAUNCH)
    根据服务关键字 (desired capabilities) 启动会话 (session) 。请注意这必须在设定 autoLaunch=false 关键字时才能生效。

    这不是用于启动指定的 app/activities ————你可以使用 start_activity 做到这个效果

    ————这是用来继续进行使用了 autoLaunch=false 关键字时的初始化 (Launch) 流程的


    driver.launch_app()

    应用重置(相当于卸载重装应用) 
    driver.reset()


    列出所有的可用上下文 (CONTEXT)
    context 可以理解为 可进入的窗口 。例如,对于原生应用,可用的 context 和默认 context 均为 NATIVE_APP
    driver.contexts


    列出当前上下文 
    driver.current_context

    获取当前页面的源码(可以辅助元素定位) 
    driver.page_source


    截图屏幕图片 
    driver.get_screenshot_as_file(r'E:imgimg1.png') # 截取整个屏幕

    获取应用程序的字符串 (APP STRINGS)
    driver.app_strings

    给设备发送一个按键事件(KEY EVENT)(只限安卓)
    driver.keyevent(176)


    键盘事件的key 码 https://developer.android.com/reference/android/view/KeyEvent.html

    获取当前 activity。只能在 Android 上使用
    driver.current_activity

    模拟用户滑动(SWIPE)
    driver.swipe(start=75, starty=500, endx=75, endy=0, duration=800)

    捏屏幕(PINCH) (双指往内移动来缩小屏幕)
    driver.pinch(element=el)

    放大 (ZOOM)屏幕 (双指往外移动来放大屏幕)
    driver.zoom(element=el)

    滑动 (SCROLL)到某个元素。从一个元素滚动到另一个元素 
    driver.scroll(originalEl, destinationEl ) # originalEl - 要滚动的元素 destinationEl - 要滚动到的元素

    设置元素的值 
    driver.set_value(element=el,Val) # 设置 el 元素的值

    推送文件到设备中去(PUSH FILE),推送文件需要转换为'base64'

    data = "some data for the file" 
    path = "/data/local/tmp/file.txt"
    driver.push_file(path, data.encode('base64'))

    获取/设置 appium 的服务器设置。 

    current_settings = driver.get_settings()
    driver.update_settings({"someSetting": True})




    多个点点击(最多五个点) 
    driver.tap([(100, 20), (100, 60), (100,100)], 500) # list 中的元组放 5 个点,500 表示按下 500ms

     
     
    #在控件上执行press 按操作。
    press(WebElement el)


    #在坐标为(x,y)的点执行press 操作 press(int x, int y)


    #在控件el 的左上角的x 坐标偏移x 单位,y左边偏移y 单位的坐标上执行press 操作。 press(WebElement el, int x, int y)


    #释放操作,代表该系列动作的一个结束标志。 release()

    #以el 为目标,从另一个点移动到该目标上 moveTo(WebElement el)


    #以 (x,y) 点 为 目 标 , 从 另 一 个 点 移 动 到 该 目 标 上 moveTo(intx,inty)


    # 以控件el 的左上角为基准,x 轴向右移动x 单位,y 轴向下移动y 单位。以该点为目标,从另一个点移动到该点上。 moveTo(WebElement el, int x, int y)


    # 在控件的中心点上敲击一下 tap(WebElement el)


    #在(x,y)点轻击一下 tap(int x, int y)


    #以控件el 的左上角为基准,x轴向右移动x 单位,y轴向下移动y 单位。在该点上轻击。 tap(WebElement el, int x, int y)


    #代表一个空操作,等待一段时间 waitAction()


    #等待ms 秒 waitAction(int ms)


    #控件长按 longPress(WebElement el)


    #点 长 按 longPress(intx,inty)

    #偏移点长按 longPress(WebElement el, int x, int y)


    #取消执行该动作 cancel()


    #执行该动作 perform()



  • 相关阅读:
    FIREDAC操作SQLITE内存数据库
    DELPHI移动端支付宝支付
    DELPHI支付宝支付代码
    DELPHI微信支付代码
    mssql内存表
    Ubuntu下添加开机启动项的2种方法
    docker容器中安装vim
    使用find命令查找Linux中的隐藏文件的方法
    Go语言_RPC_Go语言的RPC
    Mac下export生效
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/13194719.html
Copyright © 2011-2022 走看看