zoukankan      html  css  js  c++  java
  • appium 初探

      appium服务端:

      appium 可以简单的理解为一个由node搭建的一个服务。这个服务接收请求,将这些请求转为手机指令,执行指令并获取结果,返回给调用方。所以不在乎你的脚本是用什么语言实现的,只要符合appium的调用规范即可。

      appium客户端:

      解析看了下python的appium的代码,appium的webdriver是继承了selenium的webdriver.remote,所以大部分的selenium的调用语法在这里是可以通用的,只是在在自webdriver的子类中扩展了一些手机元素操作的方法,例如:find_element_by_android_uiautomatord。

        appium实战:

      案例:以真机(android)操作手机打开淘宝,进行商品搜索  

      1、手机设置为开发调试模式,数据线连接手机和电脑。

      2、命令行中输入 appium,启动appium服务

      3、编写脚本:

      • 初始化webdriver,其中appPackage 和appActivity的的信息可以通过adb的方式来拿到,命令行中输入adb logcat >temp.log,再在手机中打开淘宝,在temp.log中搜索Displayed就可以看到对应的package和activity。
    from appium import webdriver
    
    
    desired_caps = {}
    #platformName 要测试手机的系统
    desired_caps['platformName'] = 'Android'
    #platformName 手机类型或者模拟器类型,安卓不是必填项
    desired_caps['deviceName'] = 'DLQ0216203006037'
    #appPackage 想要启动的包名
    desired_caps['appPackage'] = 'com.taobao.taobao'
    #appActivity 想要从包中启动的activity的名字
    desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome'
    #appium服务的地址和端口号
    appDriver  = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
      • 打开淘宝,如果有权限限制则接受
    #接受权限
    def accepPermission(appDriver):
        try:
            appDriver.find_element_by_id('com.android.packageinstaller:id/permission_allow_button').click()
        except Exception as e:
            print(e)
    
    
    accepPermission(appDriver)
    #同意进入淘宝
    appDriver.find_element_by_id('com.taobao.taobao:id/yes').click()
    accepPermission(appDriver)
    #同意进入淘宝
    appDriver.find_element_by_id('com.taobao.taobao:id/home_searchedit').click()
    #点击查询文本框
    appDriver.find_element_by_id('com.taobao.taobao:id/searchEdit').send_keys('xiexie')
    #点击查询按钮
    appDriver.find_element_by_id('com.taobao.taobao:id/searchbtn').click()
    #退出
    appDriver.quit()
      • 其中应用的id可以通过uiautomator view的工具来获取,这个工具为android sdk自带的工具,位置在<sdkpath>/tools/bin/automatorview,具体的使用方法可以在晚上找下。  

    总结:appium中环境搭建相对于selenium来讲比较麻烦,但是搭建完之后,后面的操作基本上跟selenium的操作基本一致。

  • 相关阅读:
    正则表达式点滴
    异步处理与界面交互
    关于利用VS2008创建项目遇到的小困惑备忘
    using App.cofig to Store value
    Castle ActiveRecord学习笔记三:初始化配置
    无服务器端的UDP群聊功能剖析
    为VS2010默认模板添加版权信息
    理论有何用?不问“何用”,先问“用否”!
    微软没有公开的游标分页
    那些满脑子只考虑后台数据库的人他整天研究的就是针对自己查询一些数据的sql语句
  • 原文地址:https://www.cnblogs.com/rubeitang/p/7600526.html
Copyright © 2011-2022 走看看