搭建好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. sakura设置桌面壁纸

    下下载steam上的Wallpaper Engine 先将sakura.html下载为html文件. 再从文件打开 就保存了 再加载保存,就一直是了

  2. JUC-8-lock和Condition使用

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAADHCAYAAABySz3ZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw ...

  3. 我的第一个Mybatis项目搭建

    1.新建maven项目,目录如下.第一个坑idea目录和eclipse不一样project就像workspace pom文件 jdk版本有点高建议8.0 <?xml version=" ...

  4. python3解决url编码与解码

    对于url编码的转换,主要用urllib.parse包中的quote和unquote方法. quote进行解码,unquote进行编码. 代码实例: import urllib.parse u = & ...

  5. pytorch基础-搭建网络

    搭建网络的步骤大致为以下: 1.准备数据 2. 定义网络结构model 3. 定义损失函数4. 定义优化算法 optimizer5. 训练 5.1 准备好tensor形式的输入数据和标签(可选) 5. ...

  6. Nginx与keepalived实现高可用

    主keepalived设置 #安装keepalived [root@localhost ~]# yum -y install keepalived #安装nginx [root@localhost ~ ...

  7. DevExpress启动时的全屏SplashScreen

    使用DevExpress启动时弹出"正在加载"的Logo,而且是全屏,这种感觉不太好. 原因是使用了DocmentManager控件,当DocmentManager初始化如果耗时较 ...

  8. Saiku ui-settings接口404错误避免(二十九)

    Saiku ui-settings接口404错误避免 自己手动编译的saiku ,不知道为什么前端总是报错   /saiku/rest/saiku/info/ui-settings  404NotFo ...

  9. Java队列和定时器Timer

       一: Queue详解    Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构    Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...

  10. Android高可用移动网络连接---(转载自http://wingjay.com/2019/01/16/mobile-network-connection/)

    读者好,前面我们在 <Android 架构之网络连接与加速> 和<Android 架构之长连接技术>两篇文章中,讲解了 Http 短连接.TCP 长连接.连接复用与速度优化.数 ...