#这里的示例是用android来说明的,xpath应该是通用的,resource-id不太清楚,没配过IOS的环境

#环境配置和一些参数的意思不清楚可以看我上一篇python appium笔记(一)

(一)说明

主要说明下面2种方式,其实感觉通过xpath,不管selenium还是appium,应该能定位全部元素了。

1、resource-id:定义了resource-id,并且唯一的情况下,可以使用这种方式

2、xpath:任何情况下,都可以用xpath进行定位

(二)查看

#做第四步的时候,记得先连真机,并且开启USB调试

1、启动appium,点击下面的start server

2、点击file -- new session window

3、配置Desired Capabilities(这里可以保存配置信息,方便下次使用)

4、Start Session启动

5、如上图,可以看到resource-id的值,但是可以发现这个值不是唯一的。

6、所以可以用xpath进定位,把 android.widget.ImageView这些东西当成HTML的标签看就行了。(这里我当你已经能熟练的在selenium中使用xpath定位)

//android.support.v7.app.ActionBar.Tab[4]//android.widget.ImageView

(三)示例

这里用博客园的app做示例了

 from appium import webdriver
import time
desired_caps = {
'platformName':'Android',
#用真机的时候,这个参数deviceName没什么用,但是还是必须要有这个参数,值的话随便填就行了
'deviceName':'HUAWEI',
'platformVersion':'7.0',
'appPackage':'com.rae.cnblogs',
'appActivity':'com.rae.cnblogs.activity.LauncherActivity',
'unid':'填写自己手机unid的值',
'noReset':'true',
#设置下面2个参数解决不能输入中文的问题
'unicodeKeyboard': 'True',
'resetKeyboard':'True'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
driver.implicitly_wait(20)
#定位 我,通过xpath定位
my = driver.find_element_by_xpath('//android.support.v7.app.ActionBar.Tab[4]//android.widget.ImageView')
my.click()
#定位意见反馈,通过resource-id定位
idea = driver.find_element_by_id('com.rae.cnblogs:id/ll_feedback')
idea.click()
#定位意见反馈输入框
idea_input = driver.find_element_by_id('com.rae.cnblogs:id/avoscloud_feedback_input')
# idea_input = driver.find_element_by_xpath('//android.widget.LinearLayout[2]/android.widget.EditText')
#定位发送意见按钮
idea_send = driver.find_element_by_id('com.rae.cnblogs:id/avoscloud_feedback_send')
#输入意见信息
idea_input.send_keys('博客园is very good!support you')
#点击发送
idea_send.click()
time.sleep(10) #睡眠10秒
#退出app
driver.quit()

python appium笔记(二):元素定位的更多相关文章

  1. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  2. Python+Appium自动化测试(6)-元素等待方法与重新封装元素定位方法

    在appium自动化测试脚本运行的过程中,因为网络不稳定.测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待 ...

  3. Appium学习笔记4_元素定位方法

    Appium之元素定位,如果对Android上如何使用工具获取页面元素有问题的,请转战到这:http://www.cnblogs.com/taoSir/p/4816382.html. 下面主要是针对自 ...

  4. Python自动化中的元素定位xpath(二)

    1.Xpath元素定位 1)ele = b.find_element_by_xpath(‘/html/body/from/input[1]’) 2)Ele = b.find_element_by_xp ...

  5. python+appium 自动化2--元素定位uiautomatorviewer

    出处:https://www.cnblogs.com/yoyoketang/p/6128741.html 前言: 可以打开手机上的app了,下一步元素定位uiautomatorviewer,通过定位到 ...

  6. python appium笔记(一):appium android环境配置及示例

     (一) 简介 Appium是一个开源的自动化测试框架,可以用来测试基于iOS.Android和Firefox OS平台的原生和混合应用.该框架使用Selenium Webdriver,在执行测试时和 ...

  7. Python+Appium自动化测试(13)-toast定位

    一,前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位toast或者获取toast的文案进行断言,如下图,通过定位"登录成功"的toast就可以断 ...

  8. python学习之——selenium元素定位

    web自动化测试按步骤拆分,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告. 其中定位元素尤为关键,此篇是使用webdriver通过页面各个 ...

  9. Appium(六):元素定位

    1. 元素定位 对于自动化测试来说,核心技能就是对象的定位了.不管是web页面上的按钮或输入框,还是移动app上的一个按钮或输入框,我们要想对其进行点击或输入操作,前提是要先找到这个对象. webdr ...

随机推荐

  1. MyEclipse中JavaMail冲突问题

    MyEclipse中的JavaEE5中的mail包中只有接口,而没有实现,所以不能使用 会抛出:java.lang.NoClassDefFoundError: com/sun/mail/util/BE ...

  2. 分布式事务解决方案以及 .Net Core 下的实现(上)

    数据一致性是构建业务系统需要考虑的重要问题 , 以往我们是依靠数据库来保证数据的一致性.但是在微服务架构以及分布式环境下实现数据一致性是一个很有挑战的的问题.最近在研究分布式事物,分布式的解决方案有很 ...

  3. 全网最详细的基于Ubuntu14.04/16.04 + Anaconda2 / Anaconda3 + Python2.7/3.4/3.5/3.6安装Tensorflow详细步骤(图文)(博主推荐)

    不多说,直接上干货! 前言 建议参照最新的tensorflow安装步骤(Linux,官方网站经常访问不是很稳定,所以给了一个github的地址):         https://github.com ...

  4. 浅入浅出Typescript Decorators

    临时起的兴趣,想写一篇关于ts decorator的文章,就花小半天整理了一下...  这东西,在ES2017里好像也有... 文档的话看这里. 因为临时,就没想写太多文字介绍,带少许文字说明直接开撸 ...

  5. 前端测试框架Jest系列教程 -- Expect(验证)

    写在前面 在编写测试时,我们通常需要检查值是否满足某些条件,Jest中提供的expect允许你访问很多“Matchers”,这些“匹配器”允许您验证不同的东西. Expect 可以验证什么 Jest中 ...

  6. Windows编程之模块遍历(C++实现)

    Windows编程之模块遍历 PS: 主要扣代码使用,直接滑动到最下面使用. 遍历模块需要几个API,和一个结构体 1.创建进程快照 2.遍历首次模块 3.继续下次遍历 4.模块信息结构体 API 分 ...

  7. Perl检查引用类型

    有时候可能会需要检查引用是什么类型的,免得我们期待是一个数组引用,却给了一个hash引用. ref函数可以用来检查引用的类型,并返回类型.perl中内置了如下几种引用类型,如果检查的不是引用,则返回u ...

  8. Go Web:Cookie

    Cookie用来解决http协议无状态的问题. 首先,在服务端生成Cookie,然后在http响应header中设置Set-Cookie字段,客户端会读取到Set-Cookie字段后,会将cookie ...

  9. [转]PHP开发者必须了解的工具—Composer

    本文转自:https://blog.csdn.net/Zhihua_W/article/details/80345973 Composer是PHP 用来管理依赖(dependency)关系的工具.你可 ...

  10. ASP.NET Core入门

    一.搭建开发环境 在Windows平台下,开发.NET Core 程序需要安装如下内容: 1. .NET Core runtime 2. Visual Studio 2015 with Update ...