搭建好appium环境后,要学会定位app页面上的元素。下面是2款元素定位工具

  • uiautomatorviewer   -- Android SDK自带的元素定位工具,由Google开发的
  • Inspecor  -- appium Inspector是appium自带的一个元素定位工具

Android SDK在4.1以后提供了下面2种工具来支持UI自动化测试:

  • uiautomatorviewer – 一个图形界面工具来扫描和分析应用的UI控件
  • uiautomator – 一个测试的Java库,包含了创建UI测试的各种API和执行自动化测试的引擎

PS:切记不能搞混uiautomator和uiautomatorviewer!!!

下面是用Python实现:怎么在夜神模拟器安装淘宝app和定位淘宝的搜索框

from appium import webdriver
import time
desired_caps = {} -- 用字典格式表示,key和value要一一对应
desired_caps['platformName'] = 'Android' #android的apk还是IOS的ipa
desired_caps['platformVersion'] = '8.0' #android系统的版本号
desired_caps['deviceName'] = '127.0.0.1:62001' #手机设备名称,通过adb devices 查看
desired_caps['appPackage'] = 'com.taobao.taobao' #apk的包名
desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome' #apk的launcherActivity
#desired_caps['unicodeKeyboard'] = True #使用unicodeKeyboard的编码方式来发送字符串
#desired_caps['resetKeyboard'] = True #将键盘给隐藏起来
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) #启动服务器地址,后面跟的是手机信息
# 休眠五秒等待页面加载完成
time.sleep(5) driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click() # driver.quit()

 上面的代码解释:

"http://127.0.0.1:4723/wd/hub"的解释:

127.0.0.1    -- 环回地址(loopback address),用来测试本机的TCP/IP协议栈。等价于localhost(本机)

4723  -- appium默认端口号,不是固定的,可以修改,但不能冲突

PS:cmd查看当前占用的端口号,可输入以下命令:

  • netstat -ano   -- 查看当前所有占用的端口
  • netstat -ano | findstr "4723"   -- 查看端口号4723被哪个程序占用

/wd/hub:

从上面的图片,我们可以看到:WebDriver类在初始化时定义了一个地址,除了端口号不一样,其它的和我们传的是一样的,也有/wd/hub。因此我们就可以简单的把/wd/hub理解为——规定。

参考链接:https://www.cnblogs.com/du-hong/p/11056638.html

https://www.cnblogs.com/captainmeng/p/8387236.html

关于appium的简单理解的更多相关文章

  1. git的简单理解及基础操作命令

    前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...

  2. 简单理解Struts2中拦截器与过滤器的区别及执行顺序

    简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...

  3. [转]简单理解Socket

    简单理解Socket 转自 http://www.cnblogs.com/dolphinX/p/3460545.html  题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公 ...

  4. Js 职责链模式 简单理解

    js 职责链模式 的简单理解.大叔的代码太高深了,不好理解. function Handler(s) { this.successor = s || null; this.handle = funct ...

  5. Deep learning:四十六(DropConnect简单理解)

    和maxout(maxout简单理解)一样,DropConnect也是在ICML2013上发表的,同样也是为了提高Deep Network的泛化能力的,两者都号称是对Dropout(Dropout简单 ...

  6. Deep learning:四十二(Denoise Autoencoder简单理解)

    前言: 当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise Autoencoder(简称dAE),由Be ...

  7. 简单理解dropout

    dropout是CNN(卷积神经网络)中的一个trick,能防止过拟合. 关于dropout的详细内容,还是看论文原文好了: Hinton, G. E., et al. (2012). "I ...

  8. 我们为之奋斗过的C#-----C#的一个简单理解

    我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别. 1 .NET概述 .NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET ...

  9. 简单理解ECMAScript2015中的箭头函数新特性

    箭头函数(Arrow functions),是ECMAScript2015中新加的特性,它的产生,主要有以下两个原因:一是使得函数表达式(匿名函数)有更简洁的语法,二是它拥有词法作用域的this值,也 ...

随机推荐

  1. LG2602/BZOJ1833 「ZJOI2010」数字计数 数位DP

    问题描述 LG2602 BZOJ1833 题解 数位\(\mathrm{DP}\)板子题. 注意限制位数.前导零. \([a,b]=[1,b]-[1,a-1]\) \(\mathrm{Code}\) ...

  2. bzoj5219 [Lydsy2017省队十连测] 最长路径

    题意: 做法来自 首先竞赛图缩点后是一条链,\(1\)号节点在开头的那个\(SCC\)中,因此从\(1\)号节点出发的最长链即为\(1\)号节点所在的\(SCC\)的大小\(+1\)号节点拓扑序之后的 ...

  3. js a 标签 通过download 实现下载功能

    download 属性规定被下载的超链接目标. 在 <a> 标签中必须设置 href 属性. 该属性也可以设置一个值来规定下载文件的名称.所允许的值没有限制,浏览器将自动检测正确的文件扩展 ...

  4. 向github中已创建好的repository提交文件

    git init git remote add origin git@github.com:taishan1994/learn_django.git git pull origin master gi ...

  5. Python必备收藏!博士大佬总结的Pycharm 常用快捷键思维导图

    ​ 搜索 Ctrl + Shift + F7用法高亮显示 Ctrl + Alt + F7显示用法 编辑 ​ Ctrl + Shift + V从最近的缓冲区粘贴 Ctrl + D复制选定的区域或行到后面 ...

  6. 自动编写Python程序的神器,Python 之父都发声力挺!

    ​ 就在不久前,kite——那个能够自己编写python代码的AI,Python 之父 Guido van Rossum 使用之后,也发出了「really love」感叹,向大家墙裂推荐了这一高效工具 ...

  7. jQuery 源码分析(十一) 队列模块 Queue详解

    队列是常用的数据结构之一,只允许在表的前端(队头)进行删除操作(出队),在表的后端(队尾)进行插入操作(入队).特点是先进先出,最先插入的元素最先被删除. 在jQuery内部,队列模块为动画模块提供基 ...

  8. 黄聪:后门(Webshell)

    <?php if ("hello"==$_GET["test"]){ echo "testtrue";}if(is_uploaded_ ...

  9. flex布局和边框阴影

    "妄"眼欲穿-CSS之flex布局和边框阴影 妄:狂妄: 不会的东西只有怀着一颗狂妄的心,假装能把它看穿吧. flex布局 main axis:主轴:cross axis:交叉轴 ...

  10. 使用zabbix监控oracle的后台日志

    本文将介绍如何使用zabbix监控oracle的后台日志,当oracle后台日志出现“ORA-”或“Error”时,第一时间将该信息报警出来 zabbix agent端 以下所有操作均用root执行 ...