Appium+python (3) 元素定位(1)
打开问价夹下面的uiautomatorviewer:
夜神模拟器里的App后,回到uiautomatorviewer:
点击左上角的Device Screenshot,这时你的夜神模拟器页面就会显示在这里,右侧就是对应的定位信息了,我们主要依靠右下角的Node Detail信息进行定位。
如果你有selenium的基础,那接下来介绍的基本一致,只是换了个方法而已:
text
find_element_by_name(u"视频")
id
find_element_by_resource-id("")
class name
使用className获得的view一般不止一个,所以需要遍历得到的views,然后缩写搜索条件获取目标控件
# 获取一个className下的所有控件
buttons = driver.find_elements_by_class_name("")
# 点击第一个元素
buttons.pop(0).click()
# 点击最后一个元素
buttons.pop().click()
buttons.pop(-1).click()
accessibility id
这个方法属于appium扩展的定位方法
上图中的content-desc对应的就是accessibility_id
find_element_by_accessibility_id("")
- xpath
find_element_by_xpath("")
android uiautomator
# 注意,text里面必须是字符串,也就是说不能加u
find_element_by_android_uiautomator('new UiSelector().text("娱乐")')
此外,还有
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_tag_name()
看一段代码:
# coding: utf-8
from appium import webdriver
from time import sleep
desired_caps = {'platformName': 'Android',
'deviceName': '127.0.0.1:62001',
'platformVersion': '23',
'appPackage': 'com.tencent.news',
'appActivity': 'com.tencent.news.activity.SplashActivity',
'unicodeKeyboard': True,
'resetKeyboard': True}
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
# 跳过广告
sleep(5)
# 用text定位-点击视频
driver.find_element_by_name(u"视频").click()
# 点击娱乐
driver.find_element_by_android_uiautomator('new UiSelector().text("娱乐")').click()
上面的代码有两种定位方式,其实之前写了好多种,无奈它去乱点,根本不是想要定位的位置,比如我用class定位:
但是那一排的class是相同的,而且不能用find_elements_by_className()加索引的方式进行定位。大家也看到了,我的这个不知道为什么text就是不显示,似乎是应该可以显示的,不知道问题出在哪里
定位方式还有一个xpath,我也很关心这个该怎么用,但是我现在也不知道,不过似乎上面这些已经差不多可以进行用例编写了。至于xpath,看到好多网上说有点不好用,管他呢,大家稍安勿躁,下一节我们再来介绍xpath。
微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~
Appium+python (3) 元素定位(1)的更多相关文章
- Appium + Python自动化 - 元素定位uiautomatorviewer
元素定位主要介绍如何使用uiautiomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作.uiautiomatorviewer是android-sdk自带的一个元素定位工具,非常 ...
- Appium+Python之元素定位和操作
一.常用识别元素的工具 uiautomatorviewer:Android SDK自带的一个工具,在tools目录下 二.元素定位 1.格式:find_element_by_定位方式(va ...
- Appium+python自动化-元素定位uiautomatorviewer的使用
前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是androi ...
- appium+python自动化32-android_uiautomator定位进阶版
前言 上一篇介绍uiautomator的定位方式都是类似这种'new UiSelector().xxx("xxx")',看起非常长,我也记不住,这很不python.于是本篇优化了定 ...
- appium+python自动化30-list定位(find_elements)
前言 有时候页面上没有id属性,并且其它的属性不唯一,平常用的比较多的是单数(element)的定位方法,遇到元素属性不唯一,就无法直接定位到了. 于是我们可以通过复数(elements)定位,先定位 ...
- Appium(六):元素定位
1. 元素定位 对于自动化测试来说,核心技能就是对象的定位了.不管是web页面上的按钮或输入框,还是移动app上的一个按钮或输入框,我们要想对其进行点击或输入操作,前提是要先找到这个对象. webdr ...
- Selenuim+Python之元素定位总结及实例说明
网页自动化最基本的要求就是要定位到各个元素,然后才能对该元素进行各种操作(输入,点击,清除,提交等),所以笔者今天来总结下Selenuim+Python最基本的几种定位方式及实例说明,希望能帮助到大家 ...
- python selenium 元素定位(三)
上两篇的博文中介绍了python selenium的环境搭建和编写的第一个自动化测试脚本,从第二篇的例子中看出来再做UI级别的自动化测试的时候,有一个至关重要的因素,那就是元素的定位,只有从页面上找到 ...
- python selenium-webdriver 元素定位(三)
上两篇的博文中介绍了python selenium的环境搭建和编写的第一个自动化测试脚本,从第二篇的例子中看出来再做UI级别的自动化测试的时候,有一个至关重要的因素,那就是元素的定位,只有从页面上找到 ...
随机推荐
- 【nginx】一台nginx服务器多域名配置
Nginx 多域名配置 nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里.一. ...
- 动态延迟加载网页元素jQuery插件scrollLoading
如果一个网页很长,那么该页面的加载时间也会相应的较长.而这里给大家介绍的这个jQuery插件scrollLoading的作用则是,对页面元素进行动态加载,通俗的说就是滚到哪就加载到哪,屏幕以下看不见的 ...
- spark 性能优化
1.内存 spark.storage.memoryFraction:很明显,是指spark缓存的大小,默认比例0.6 spark.shuffle.memoryFraction:管理executor中R ...
- Unity 和 3DMAx
3DMax转换成DAE模式才会有纹理信息.
- 使用Idea工具nodeJS+mysql开发项目
一.MySQL Server的安装 1.mysql官网下载文件包:[我使用的版本是:mysql_5.7.17] 2.解压Zip压缩包: 3.安装:命令行:D:\soft\mysql-5.7.17-wi ...
- Wannafly挑战赛14E无效位置
https://www.nowcoder.com/acm/contest/81/E 给一个1-base数组{a},有N次操作,每次操作会使一个位置无效.一个区间的权值定义为这个区间里选出一些数的异或和 ...
- 收集的几个好用的maven mirror
<mirrors> <mirror> <id>jboss-public-repository-group</id> <mirrorOf>ce ...
- Centos7下部署两套python版本并存
Centos7下部署两套python版本并存 需求说明:centos7.2系统的开发机器上已经自带了python2.7版本,但是开发的项目中用的是python3.5版本,为了保证Centos系统的 ...
- 小练习:Two Sum
1.example Given nums = [, , , ], target = , Because nums[] + nums[] = + = , , ]. 2.solve class Solut ...
- Composer介绍
Composer介绍 简单的说Composer就是一个PHP的组件包的依赖管理器.早年间PHP其实是有自己的包管理器的,叫PEAR.PEAR就介绍到这里,你只要知道这是一个狗屎一般的管理器就行了.在N ...