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的操作基本一致。

时间: 2024-11-01 22:18:57

appium 初探的相关文章

appium初探问题总结

自从搭建好环境后,运行一个appdemo各种奇葩问题层出不穷,过后可能觉得是挺简单的问题,但对于初次接触的人来说,有砸电脑的冲动也不为过·这里将自己所遇到的问题记录下来,备忘. 问题一:照着网上的教程安装好SDK,准备运行AVD,由于网上的教程截图显示SDK MANAGER 和 AVD manager是放在一起的,但我的没有···找了半天才在D:\appium\SDK\adt-bundle-windows-x86-20140702\sdk\tools\lib目录下找到.迫不及待的双击后却提示fa

Appium IOS 自动化测试初探

手机平台的自动化测试工具很多,之前研究过了安卓和苹果的原生自动化测试框架,经一些同事介绍,貌似Appium是个不错的工具. 想记录一下研究的结果,也算是篇干货的文章 在网上也看了一些视频,个人认为这个自动化测试的特点就是 1. 多编程语言支持 相对于传统的IOS UIautomation只能支持js语言,Appium起到了一个翻译的作用,它其实是一个CS架构,服务器和IOS模拟器或真机直接通讯,客户端和服务器之间用HTTP协议进行交互,所以客户端用什么语言其实不重要.下面会有一个python编程

初探appium之元素定位(1)

无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多资料,帖子都是说的appium自带的Inspector这个工具进行的元素定位.而笔者不知道是电脑还是什么的问题,这个工具是无法使用的.今天给大家说的是另一个工具. uiautomatorviewer 这个工具是在我们Android的SDK的tools的文件夹里面的.使用方法也很简单.这里我以安卓模拟

初探appium之环境搭建

前段时间一直在折腾python的爬虫,想搞接口自动化.但是写了一个月,发现在我现在的这份的工作中根本接触不到接口.所以就想先放下来,先做点目前能够接触到的,也需要做的东西. 东西越来越多,人手不足.自己弄一下appium玩玩吧.下面为大家分享一下appium的环境搭建. 必须安装: 一.搭建Android环境 1.安装JDK 配置系统变量新建JAVA_HOME(JDK的安装路径) 配置系统环境变量Path(如果不存在,则新建变量 PATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的起

Mac下搭建appium自动化测试环境

一起需要装的有: 1.  JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.  SDK(测试安装app需要,链接为SDK24.4.1版本) http://down.tech.sina.com.cn/download/d_load.php?d_id=45703&down_id=2&ip=183.11.129.46 3.  Appium客户端 http://pan.

Appium移动自动化测试之—基于java的iOS环境搭建

本文仅供参考,同时感谢帮助我搭建环境的同事 操作系统的名称:Mac OS X操作系统的版本:10.12.6 接下来我们开始踏上搭建Appium+java+ios之路,本文只说个大概,毕竟本机已经装过了,我就不在折腾了,耗费好几天时间才搞定. 一:安装Appium 1.作者系统安装的Appium版本为:1.6.4,安装方法:打开终端输入:npm install –g [email protected],检查是否安装成功:终端输入appium -v,如果显示版本号说明安装成功. 2.图形界面客户端安

appium+python在Mac上环境搭建

前言 mac上搭建appium+python的环境还是有点复杂的,需要准备的软件 1.nodejs 2.npm 3.cnpm 4.appium 5.pip 6.Appium-Python-Client 一.nodejs安装 1.nodejs下载地址:https://nodejs.org/ 2.下载完成后傻瓜式下一步安装 3.打开终端,查看版本号是否安装成功,输入:node -v 二.npm安装 1.打开终端,输入:sudo bash 2.继续输入:sudo curl -L https://npm

进阶之初探nodeJS

一.前言 在"初探nodeJS"随笔中,我们对于node有了一个大致地了解,并在最后也通过一个示例,了解了如何快速地开启一个简单的服务器. 今儿,再次看了该篇随笔,发现该随笔理论知识稍多,适合初级入门node,固萌生一个想法--想在该篇随笔中,通过一步步编写一个稍大一点的node示例,让我们在整体上更加全面地了解node. so,该篇随笔是建立在"初探nodeJS"之上的,固取名为"进阶之初探nodeJS". 好了,侃了这多,那么我们即将实现一个

Appium运行报错

Error:Unable to find an active device or emulator with os 4.2.The following are available: 192.168.56.101:5555 原因:运行脚本设置安卓版本与appium设置版本不一致 解决:将脚本和appium改为一致便可