appium自动化测试之UIautomatorviewer元素定位

标签(空格分隔): uiautomatorviewer元素定位


前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具体介绍一下关于UIautomatorviewer的元素定位:

所有的关于自动化的测试,其实都是通过定位页面的元素,识别元素来,来操作进行界面的操作,从而进行判断是否符合一个预期的结果的;

下边主要介绍一个uiautomatorviewer这个工具,uiautomatorviewer是Android-sdk自带的一个元素定位工具,非常好用,使用UIautomatorviewer,你可以查看一个应用的UI来查看应用的布局和组件以及相关的属性;

  • 启动UIautomatorviewer.bat文件:

    打开对应的安装sdk的目录,找到对应的tools文件(mac电脑的同学:/Users/用户/Library/Android/sdk/tools/bin目录下,我也找了好久),然后打开:uiautomatorviewer.bat文件:
  • 双击:.bat文件

  • cmd adb devices

    查看设备是否连接上,然后点击uiautomatorviever界面的第二个控件:

  • 可以通过鼠标的移动定位具体的元素:
  • 右下角是一些元素的定位属性:
  • 前面写过的关于:启动APP的,还有一些appium配置的,这里不再赘述了,大家自行研究,要知道这段代码都差不多:
desired_caps = {
"platformName": "Android",
#小米手机
# "deviceName": "09630c80",
# "platformVersion": "4.4.4",
#360手机
"deviceName": "8681-M02-0x253b1876",
"platformVersion": "5.1",
"appPackage": "*****",
"appActivity": "*****",
"unicodeKeyboard":True,
"resetKeyboard":True}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
time.sleep(5)
driver.find.element_by_id("***").click()
  • appium 的webdriver提供了11种,常规的元素的定位方法,在selenium的基础上扩展了三个,可以在pycharm里面输入,driver.find_element_by然后会自动的匹配出来

如图所示的多的三种地位方式,第三个是iOS的用的,我们可以先不考虑;

uiautomatorviewer是Android自带的,其实apium自己也可以有自己的定位方式:inspector

其实:我感觉Mac电脑用appium的inspector很好用,但是Windows就不太好用了,inspector是appium自己带的一款定位工具:

设置appium

1.先不用启用appium

2.点开Android setting界面(机器人图标)

3.勾选ApplicationPath ,添加到被测APP的路径

4.Devices name处添加设备名称(adb devices 查看到的)

通过上述的方法可以查看:apk的包名,和LaunchActivity

例如:淘宝APP

二、开启appium

    1.手机确保连接电脑(adb devices查看)

    2.点appium右上角三角形图标,会启动服务

    3.这时候可以看到手机上安装淘宝应用,并会启动淘宝

    4.点appium右上角的搜索图标

    5.点Inspector Window界面的 Refresh 按钮刷新界面

三、Ispector Window

    1.手机上打开需要单位元素的界面,然后点Refresh按钮刷新

    2.左边菜单树,可以挨个点开

    3.如果想单位界面上的“是”和“否”按钮,从菜单树就可以看到这两个元素的结构

Remote远程控制:

代码的开始:driver = webdriver.Remote('http://192.168.1.1:4723/wd/hub',

desired_caps)很多人不知道是怎么来的?

这里简单介绍一下:

一般来说appium中127.0.0.1这个地址的默认的不需要修改。在做自动化过程中,如果遇到需要远程操作的话,这个功能就可以派上用场了。想想看,如果公司给你单独配置一台跑自动化测试电脑,然后自己工作的电脑写脚本,在自动化机器上运行脚本,这样工作自动化两不误,是不是很爽呢?

设置IP:

1.打开appium>General Setting界面



2.这里用个appium默认的服务端地址127.0.0.1端口4723,一般在自己机器上调试,无需修改

二、访问地址

    1.代码里面的那个地址到底指向的是哪里呢?

启动appium服务后,在浏览器输入:http://127.0.0.1:4723/wd/hub。出现如下图所示,说明服务启动成功,可以把appium看出是一个服务端。



三、配置测试机

    1.一台工作电脑,一台跑自动化测试的电脑,如何用工作的电脑远程控制自动化测试的那台电脑呢?

    2.测试电脑上的appium服务地址改成本机IP地址如:172.17.1.165(这里要是本机的ip地址!!!!!)



3.启动测试电脑上的appium。



四、远程操作

    1.在自己工作电脑上打开浏览器输入:172.17.1.165:4723/wd/hub。这一步很重要,一定要看到如下界面,确认远程链接成功。

同时代码里面的IP也要对应的修改一下;

3.以上环境准备好后,在测试机器上运行脚本,于是测试机器上可以自动运行了;

输入中文的问题:

在做APP的自动化测试时候,我们会遇到输入中文的问题,那怎么版本呢?

我们可以采取:屏蔽软件盘,绕过手机软件盘的方法,解决输入中文的问题;

通常我们会使用:元素.send_keys(u"hao")

2.运行脚本:

首先我们要确认手机的输入法是什么输入法,如果默认是中文的输入法,启动后出现下面的情况,无法输入成功;



3.于是我们可以吧手机的输入法变成英文输入法,那么我们就不能输入中文了,那要怎么办呢?

屏蔽软件键盘:

1.通过前面的操作,大概可以知道,在APP里面输入字符串,是调用的是软键盘输入的,有没有办法像selenium一样,直接send_keys绕过键盘输入呢?

2.于是可以想办法屏蔽软键盘,只需要在desired_caps{}设置里面加两个参数()

from appium import webdriver
import time
desired_caps={
'platforName':'Android'
'deviceName':'*****'
'platformVersion':'5.0'
'appPackage':'****'
'appActivity':'***'
'unicodeKeyboard':True
'resetKeyboard':True}

注意:

unicodeKeyboard是使用unicode编码方式发送字符串;

resetKeyboard是将键盘隐藏起来;

使用上述的代码后:

在send_keys(u'学习测试')

注意2:输入使用真机测试时候,发现测试完毕之后,输入不能用了,这时候怎么办呢?

答案:

我们需要进入到设置--输入法设置,把对应的输入法修改过来,就可以了,修改为系统的,或者自己常用的就行了;

appium自动化测试之UIautomatorviewer元素定位的更多相关文章

  1. python+Appium自动化:H5元素定位

    问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...

  2. python+Appium自动化:id元素定位

    元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name cla ...

  3. python+Appium自动化:各种元素定位方法

    name定位 driver.find_element_by_name('飞利浦净水').click() 测试结果报错:selenium.common.exceptions.InvalidSelecto ...

  4. Selenium自动化测试之学会元素定位

    这是我经常被问到的一个问题,也是我很讨厌回答的问题,因为要想回答这个问题需要知道上下文.什么样式的元素,有哪些属性,是否有表单嵌套,都尝试了哪些定位方法...而且没几个提问者能事先详细的说明这些.哪儿 ...

  5. 5、通过Appium Desktop实现页面元素定位

    之前我们已经安装了Appium Desktop,下面就让我们使用Appium Desktop实现页面元素定位 1.首先我们打开Appium Desktop,进入如下界面,点击Start Server ...

  6. appium自动化测试之元素定位

    方法一 使用SDK中附带的uiautomatorviewer来定位 在SDK安装目录下的tools下有个uiautomatorviewer.bat批处理文件点击运行 运行后(注意appium desk ...

  7. 『与善仁』Appium基础 — 17、元素定位工具(一)

    目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...

  8. 『与善仁』Appium基础 — 18、元素定位工具(二)

    目录 1.Appium Inspector介绍 2.Appium Inspector打开方式 3.Appium Inspector布局介绍 4.Appium Inspector工具的配置 5.Appi ...

  9. 『与善仁』Appium基础 — 19、元素定位工具(三)

    目录 1.Chrome Inspect介绍 2.Chrome Inspect打开方式 3.Chrome Inspect工具的使用 (1)Chrome Inspect工作前提 (2)Chrome Ins ...

随机推荐

  1. Spring和SpringBoot比较,解惑区别

    1.概述: 对于Spring和SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习SpringBoot的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,我相信 ...

  2. uva10603-倒水问题-暴力枚举-隐式图搜索

    题意: 给你三个杯子,a,b,c,没有刻度,刚开始c杯是满的,倒水的要求,要么倒出水的杯子倒空,要么倒入杯子倒满. 结果: 要求某个杯子内有d水量,并且倒出的水量最少,如果倒不出d水量,那么倒出d1( ...

  3. spring 之 init-method & InitializingBean

     init-method  是bean (第一次)实例化的时候被调用的. 先看个异常: INFO: Overriding bean definition ; dependencyCheck=; aut ...

  4. jenkins部署配置

    https://www.cnblogs.com/rslai/p/8135460.html 修改jenkins的默认端口号: https://blog.csdn.net/qq_32440951/arti ...

  5. 【JAVA】POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写

    POI设置EXCEL单元格格式为文本.小数.百分比.货币.日期.科学计数法和中文大写 博客分类:,本文内容转自 http://javacrazyer.iteye.com/blog/894850 FIL ...

  6. Python conda 入门

    https://blog.csdn.net/yimingsilence/article/details/79388205 查看版本 conda --version 列出所有的Python环境 cond ...

  7. C#与.NET概述

    .NET Framework是一个支持生成和运行下一代应用程序和web服务的集成在Windows中的组件. 关键组建为CLR和FCL. 为其运行的应用程序提供各种服务的托管执行环境,简化的开发和部署以 ...

  8. jquery查找筛选器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. netty为啥要二次开发

    很早之前就看过李林峰写的netty的书,但是感觉没有直接用到还是理解不够深入,现在的公司有两套自己基于Netty开发的系统,感觉才真正理解为啥要这么做 借用别人文章回顾下 https://www.cn ...

  10. css:调整placeholder样式

    input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #C5CACF; } input:-moz ...