#这里的示例是用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. [转&精]IO_STACK_LOCATION与IRP的一点笔记

    IO_STACK_LOCATION和IRP算是驱动中两个很基础的东西,为了理解这两个东西,找了一点资料. 1. IRP可以看成是Win32窗口程序中的消息(Message),DEVICE_OBJECT ...

  2. for循环中let与var的区别,块级作用域如何产生与迭代中变量i如何记忆上一步的猜想

    我在前一篇讨论let与var区别的博客中,顺带一笔带过了let与var在for循环中的不同表现,虽然解释了是块级作用域的影响,但具体是怎么去影响的呢,我尝试的去理解了下,这篇博客主要从for循环步骤拆 ...

  3. 仿照 ButterKnife 的 Android 注解实例

    什么是注解 java.lang.annotation,接口 Annotation,在JDK5.0及以后版本引入. 注解处理器是 javac 的一个工具,它用来在编译时扫描和处理注解(Annotatio ...

  4. 第12章 Linux配置定时任务详解

    12.1 配置定时任务 首先需弄清的概念: (1).crond是一个daemon类程序,路径为/usr/sbin/crond.默认会以后台方式启动,service或systemd方式启动crond默认 ...

  5. wget命令的几个常用选项和示例

    wget命令用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕.如果是服务器打断下 ...

  6. 伪指令 ADR 与 LDR 的区别

    指令简介: adr r0, _start 得到的是 _start 的当前执行位置,由 pc+offset 决定 ldr r0, =_start 得到的是绝对的地址,链接时决定 程序示例: ldr r0 ...

  7. 【转载】IIS报错不是有效的Win32应用程序

    今天在IIS中部署ASP.NET网站后,访问网站报错,提示信息为:未能加载文件或程序集XXX.dll或它的某一个依赖项,不是有效的Win32应用程序(异常来至HRESULT:0x800700C1).通 ...

  8. 事务隔离级别之Read Uncommitted/WITH(NOLOCK)

    知识点链接 事务隔离级别之Read Uncommitted       https://blog.csdn.net/oyw5201314ck/article/details/79621347 WITH ...

  9. Android Studio 使用Menu

    首先在res目录下创建一个文件夹名字随意 在对创建的文件夹下在创建一个菜单 名字随意 参看布局 可以看到你的菜单 可以选择添加是么样的菜单 接着要到主活动中重写 onCreateOptionsMenu ...

  10. C#中MessageBox.Show问题(让提示窗口不显示在任务栏中)

    在winform中让MessageBox.Show显示的窗口不显示在任务栏中:第一个参数很明显是你要显示的内容   类型是string 语法Visual Basic(声明) Public Shared ...