appium基础一:连接手机和appium-desktop定位元素

摘要:
更换完成后,运行程序,您会发现设置已自动激活。2.通过代码链接模拟器/手机from appiumportwebdriver#import appium package#连接手机应用程序初始化的一些信息desc={}desc['deviceName']='127.0.1:62001'#移动设备名称,adbdevicedesc['platformVersion']='4.4.2'#手机版本,在移动电话中:settings--about mobile phone desc['platformName']='Android'#移动电话类型、Ios或Android#输入命令以获取应用程序信息:aaptdumppadgingC:Users83473Desktopmobileeq_Android.apkdesc['appPackage']='com。帐篷mobileqq'#包名称desc['appActivity']='com。帐篷手机qq。活动PlashActivity'#Start entry desc[“unicodeKeyboard”]=“True”#appium提供的一种输入法,可以传输到中文。此时,如果模拟器和appium桌面中的界面不同,可以单击刷新按钮进行同步。

一、获取手机信息

adb devices获取手机或模拟器的设备名

appium基础一:连接手机和appium-desktop定位元素第1张

aapt dump badging xxxx.apk获取app的包名、入口等基本信息

appium基础一:连接手机和appium-desktop定位元素第2张

如果想要知道手机原生携带的app的基本信息,首先是无法获取到这个apk软件包,也就无法用aapt的方法来获取对应的信息。此时可以通过抓取日志的方法获取基本信息。

举例:想要获取到手机功能---设置  的基本信息。最终可以通过代码或appium客户端链接手机,并自动启动手机的设置功能

方法:

1、关闭手机后台运行的所有程序

2、打开手机日志

在cmd窗口输入adb logcat | findstr /i start  查看日志并过滤出来start 类型日志,保持日志监控窗口不动

3、点击手机中的---设置,查看cmd窗口日志文件

因为先前已经把所有后台运行日志关闭。所有此时打开设置,可以看到日志窗口发生了变化,可以确定这个日至就是设置功能的日志

appium基础一:连接手机和appium-desktop定位元素第3张

从上面的日志信息中,可以看到有这样以穿字符串:com.android.settings/.Settings

这个字符串中的 / 左侧即为包名,右侧是入口。然后可以把这个包名和程序入口,替换我们代码中的对应qq的包名和程序入口。替换完成以后,运行程序,就会发现设置自动被启动了

二、通过代码链接模拟器/手机

复制代码
from appium import webdriver#导入appium包

#连接手机app初始化的一些信息
desc={}

desc['deviceName']='127.0.0.1:62001'#手机设备名称,adb devices
desc['platformVersion']='4.4.2'#手机版本,在手机中:设置--关于手机
desc['platformName']='Android' #手机类型,ios或android
#输入命令,获取app信息:aapt dump badging C:Users83473Desktopmobileqq_android.apk
desc['appPackage']='com.tencent.mobileqq'#包名
desc['appActivity']='com.tencent.mobileqq.activity.SplashActivity'#启动入口
desc["unicodeKeyboard"] = "True"#appium提供的一种输入法,可以传中文。测试时直接用这个输入法
desc["resetKeyboard"] = "True"#程序结束时重置原来的输入法
desc["noReset"] = "True"#不初始化手机app信息(类似不清楚缓存)


#启动服务端,再cmd窗口输入appium.如果appium没有安装好,可以打开appium-desktop.也相当于启动了服务

driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desc)#访问服务接口,并启动手机app。url参数是当appium启动后,默认访问服务地址和接口
复制代码

启动服务如下图:

appium基础一:连接手机和appium-desktop定位元素第6张

至此,可以直接右键运行程序,可以看到模拟器中的qq就启动了

三、用客户端链接app

appium基础一:连接手机和appium-desktop定位元素第7张

1、双击上面的图标,打开appium-desktop,点击start session

appium基础一:连接手机和appium-desktop定位元素第8张

2、打开后,点击屏幕右上角的搜索按钮

appium基础一:连接手机和appium-desktop定位元素第9张

3、然后会打开配置页面,在本地服务配置信息同上面写的代码链接配置。填入正确的信息后,点击startSession

 appium基础一:连接手机和appium-desktop定位元素第10张

成功启动模拟器中的qq程序。如下图。此时如果模拟器和appium-desktop中界面不同,可点击刷新按钮同步下。

appium基础一:连接手机和appium-desktop定位元素第11张

四、定位方式

1、id定位

举例:

点击定位元素按钮,点击左侧app界面中的登录定位元素后,就会出现selected element界面。

appium基础一:连接手机和appium-desktop定位元素第12张

 此时,右侧栏中可以看到,有个id,下拉滚动条会发现还有个resource-id。会发现他们两个是一样的。这就是说明,这个id是唯一的,登录按钮被唯一定位到,代码中就可以通过id直接定位===》find_element_by_id('com.tencent.mobileqq:id/btn_login') #通过id定位

如果右侧栏中只有resource-id,没有id,说明resource-id不是唯一的,也就是不能通过id定位方式定位元素.  

id一定要用双引号括起来

2、xpath定位

用定位元素按钮定位某个元素后,右侧selected element栏目中找到xpath,复制其对应的内容。通过xpath方法就可以定位

driver.find_element_by_xpath('//android.widget.EditText[@content-desc="请输入QQ号码或手机或邮箱"]')

appium基础一:连接手机和appium-desktop定位元素第13张

3、残障人士提示信息进行定位,也就是content-desc:

先用定位元素按钮定位某个元素后,右侧selected element栏目中,找到content-desc。复制content-desc的值后。通过find_element_by_accessibility_id(),将对应的值作为参数传入。

driver.find_element_by_accessibility_id('请输入QQ号码或手机或邮箱')

appium基础一:连接手机和appium-desktop定位元素第14张

4、AndroidUiautomator定位

 这个在运行时,调用的是Android自带的UI框架UiAutomator的Api。格式固定,介绍几个常用的格式如下

复制代码
driver.find_element_by_android_uiautomator('new UiSelector().text("手机号")')
# 包含text文字
driver.find_element_by_android_uiautomator('new UiSelector().textContains("机")')
# 以text什么开始
driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("手")')
# 正则匹配text
driver.find_element_by_android_uiautomator('new UiSelector().textMatches("^手.*")')
 
# className
driver.find_elements_by_android_uiautomator('new UiSelector().className("android.widget.TextView")')
# classNameMatches
driver.find_elements_by_android_uiautomator('new UiSelector().classNameMatches("^android.widget.*")')
 
# resource-id、resourceIdMatches
driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.syqy.wecash:id/et_content")')
 
# description
driver.find_element_by_android_uiautomator('new UiSelector().description("S 日历")')
# descriptionStartsWith
driver.find_element_by_android_uiautomator('new UiSelector().descriptionStartsWith("日历")')
# descriptionMatches
driver.find_element_by_android_uiautomator('new UiSelector().descriptionMatches(".*历$")')
复制代码

五、通过不同的定位方式查找元素 

我们也可以通过appium-desktop的search for element功能。通过定位方式和对应的值来查找元素,从而验证定位方式和值的正确性

appium基础一:连接手机和appium-desktop定位元素第17张

appium基础一:连接手机和appium-desktop定位元素第18张

可以看到定位方式就是我们第4借说的集中定位方式。选择一个定位方式,填入对应的值,点击search

appium基础一:连接手机和appium-desktop定位元素第19张

 选中找到的元素,可以看到左侧对应手机界面中的元素被选中。从而也证明我们的这种定位方式和对应的值都是没问题的。可以定位到元素的。

如果是按钮,就点击  tap element ,相当于代码中的click()

如果是输入框,就在‘enter keys' 中输入内容,然后点击sendkeys就可以往已选的元素中输入内容,相当于代码中的send_keys()

 appium基础一:连接手机和appium-desktop定位元素第20张

六、录制

点击小眼睛图标的录制按钮,可以看到界面展现出来代码模块。可以选择录制语言=》python或其他

appium基础一:连接手机和appium-desktop定位元素第21张

然后和右侧selected element 栏目中的tap、send keys、clear 或者 search for element结合操作,根据search for element找到元素定位i,并tap或者sendkeys等操作。这些操作都会被录制下来并生成python代码。可直接使用

免责声明:文章转载自《appium基础一:连接手机和appium-desktop定位元素》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇配置OSPF虚连接示例centos7下 PHP添加pdo_myql扩展下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

概要设计文档3.0

概要设计文档 1、引言部分 引言部分主要说明编写目的、系统的范围和参考资料等。 1.1目的 该文档的目的是描述旅游软件的概要设计,主要内容包括系统功能简介、系统结构设计、模块设计和界面设计等。 本文档的预期读者包括:设计人员,开发人员,项目管理人员,测试人员。 1.2 范围 1.2.1 系统目标 我们设计这款软件主要目的是给大学生提供一款主要针对他们的旅游...

vue 服务端渲染 vs 预渲染(1)

服务端渲染: 1、将完整的html输出到客户端 2、要使用通用代码 优点 :  1、首次渲染快(无需等所有的js都完成下载)   2、利于seo 缺点:  1、更多的服务器负载 2、开发受限 3、需要处于node.js/php server 运行环境 预渲染:  1、使用少数营销页的seo   2、生成对特定路由静态的html文件 优点:   1、预渲染更...

Appium(六):元素定位

1. 元素定位 对于自动化测试来说,核心技能就是对象的定位了。不管是web页面上的按钮或输入框,还是移动app上的一个按钮或输入框,我们要想对其进行点击或输入操作,前提是要先找到这个对象。 webdriver提供了八种元素定位的方法: id name class name tag name link text partial link text xpat...

软件测试英语专业词汇汇总

  NLV:Nation Language Version  本地化版本 FVT:Functional Verification Testing  功能验证测试 TVT:Translation Verification Testing  翻译验证测试 SVT:System Verification Testing  系统验证测试 fault--故障 在软...

软件产品案例分析(团队)

任务分配流程图 第一部分 调研,评测 【评测】 下载并使用,描述最简单直观的个人第一次上手体验。 移动端 软件登录界面,色彩清新,操作流畅,这种风格看着还是蛮舒服的。不过登录、注册等按钮距离间隔太近容易误操作。 注册界面直接以web网页形式加载,响应速度较慢,体验并不是很好。 用户的主界面非常简洁清新,“我的”界面除了用户名、区域看不到用户的其他信息。...

让Beyond Compare以网页形式显示文件就是这么简单

在日常生活中,我们可能会遇到要比较两个文件的差异的情况,如果文件比较复杂的话,那么这是非常的麻烦的。这个时候我们就可以用最新版的Beyond Compare 4软件来对比出两个文件夹或者文件的不同之处,非常的方便快捷。Beyond Compare拥有强大且全面的文件处理功能,文本文件可以用语法高亮和比较规则调整进行查看和编辑,适用用于文档、源代码和HTML...