Appium移动端自动化测试之元素定位(三)
1、name定位
driver.find_element_by_id('com.shanjian.originaldesign:id/edit_Tel').send_keys('15817252876') driver.find_element_by_id('com.shanjian.originaldesign:id/edit_Pwd').send_keys('123456') driver.find_element_by_name('登录').click()
所以,我们暂时可以把元素的text 属性看作name 来使用。如果你的app不能正常的定位元素,那就换其它定位方式吧。
2).id定位
driver.find_element_by_id('com.shanjian.originaldesign:id/edit_Tel').send_keys('15817252876')driver.find_element_by_id('com.shanjian.originaldesign:id/edit_Pwd').send_keys('123456')driver.find_element_by_name('登录').click()
通过UI Automator定位到的resource-id就是元素的ID、
3).classname定位
desired_caps = { 'platformName': 'Android', 'platformVersion': '5.0.0.0', 'deviceName': '127.0.0.1:62001', 'appPackage': 'com.shanjian.originaldesign', 'appActivity':'.activity.other.Activity_In'} driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) sleep(10) button = driver.find_elements_by_class_name("android.widget.EditText") print len(button)
输出结果:
(注:一般一个页面上的class属性不唯一,元素不唯一的话定位会报错了)
4).uiautomator定位
desired_caps = { 'platformName': 'Android', 'platformVersion': '5.0.0.0', 'deviceName': '127.0.0.1:62001', 'appPackage': 'com.shanjian.originaldesign', 'appActivity':'.activity.other.Activity_In', } driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) sleep(10) #用于清除历史记录 driver.find_element_by_id("com.shanjian.originaldesign:id/edit_Tel").clear() driver.find_element_by_android_uiautomator('new UiSelector().text("输入手机号码")').send_keys("15817252876") driver.find_element_by_id("com.shanjian.originaldesign:id/edit_Pwd").send_keys("123456") driver.find_element_by_android_uiautomator('new UiSelector().text("登录")').click()
注意:使用uiautomator定位时new UiSelect()中间有空格,并且最外层使用单引号,里面使用双引号,否则会报如下错误:
selenium.common.exceptions.WebDriverException: Message: The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource.
driver.find_element_by_android_uiautomator("new UiSelector().text('登录')").click()
5).accessibility_id定位
1.accessibility_id定位就是通过UI Automator工具查看的content-desc属性
(当然下图这个元素的content-desc属性为空,就不能通过这个属性定位了,这里只是举个例子)
2.如上图的定位,看到content-desc属性有值,就可以通过accessibility_id来定位了
格式:driver.find_element_by_accessibility_id(“content-desc的值”)
driver.find_element_by_accessibility_id(“xxx”)
Tip:content-desc值对应在web页面中就是text值,appium使用accessibility_id来定位
6).Xpath定位
需要注意的是:在appium中使用Xpath定位,标签名就是class的值。
sleep(10) driver.find_element_by_id("com.shanjian.originaldesign:id/edit_Tel").clear() driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.shanjian.originaldesign:id/edit_Tel']").send_keys('15817252876') sleep(10) driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.shanjian.originaldesign:id/edit_Pwd']").send_keys('123456') sleep(10) driver.find_element_by_xpath("//android.widget.TextView[@text='登录']").click()
from selenium.webdriver.common.by import By driver.find_element_by_xpath("//android.widget.EditText[contains(@resource-id,'originaldesign')]").send_keys('15817252876') driver.find_element(By.XPATH,("//android.widget.EditText[contains(@resource-id,'originaldesign')]")).send_keys('15817252876')
7).其他定位方法
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_css_selector()
转载于:https://www.cnblogs.com/fighter007/p/8438594.html
Appium移动端自动化测试之元素定位(三)相关推荐
- Web UI自动化测试之元素定位
目前,在自动化测试的实际应用中,接口自动化测试被广泛使用,但UI自动化测试也并不会被替代.让我们看看二者的对比: 接口自动化测试是跳过前端界面直接对服务端的测试,执行效率和覆盖率更高,维护成本更低,整 ...
- UI自动化测试之元素定位方法
Python语言Selenium库UI自动化测试(一)元素定位方法 简介 当我们日常搭建自动化测试框架时,用Python调用浏览器时,通常有Requests库.Selenium库 这两个库是进行爬虫或 ...
- Python+Appium自动化测试之toast定位
目录 一. 前言 二. 环境 三. toast定位准备与定位方法 1. 准备 2. 定位方法 四. 示例代码 一. 前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位 ...
- java appium_Android应用开发之AS+Appium+Java+Win自动化测试之Appium的Java测试脚本封装(Android测试)...
本文将带你了解Android应用开发AS+Appium+Java+Win自动化测试之Appium的Java测试脚本封装(Android测试),希望本文对大家学Android有所帮助. 一.为什么需要封 ...
- Appium+Python安卓自动化测试之启动APP和配置获取
Appium+Python安卓自动化测试之启动APP和配置获取 本文章未讲述appium+python环境部署,环境部署会新开文章 一.手机连接电脑 1.USB连接电脑和手机,手机上点确认连接(最好用 ...
- Python+selenium自动化八大元素定位方法及实例(超详细)
目录 一.selenium模块中的find_element_by_id方法无法使用 二.Python+selenium自动化八大元素定位方法 使用场景: 1.通过id属性定位:driver.find_ ...
- Appium 移动端自动化 - Android SDK连接安卓手机,adb连接一加8手机USB调试实例演示,连接一加8手机不显示USB调试选项问题排查
Android SDK 连接安卓手机过程演示 第一章:一加8手机连接过程 ① 启用开发者模式 ③ 开发者选项启用 USB 调试 ③ 手机连接 USB 调试 ④ 手机连接不显示 USB 调试选项问题排查 ...
- Appium 移动端自动化 - Android SDK的安装与配置,使用安卓SDK连接手机实例演示
Android SDK 的安装与配置演示 第一章:Android SDK 的安装 ① 下载 ② 安装过程 ③ 配置 第二章:连接手机 USB 调试 ① 一加8手机连接演示 第一章:Android SD ...
- 三、Appium-python-UI自动化之元素定位uiautomatorviewer
uiautomatorviewer是android-sdk自带的一个元素定位工具,非常简单好用,使用uiautomatorviewer,可以检查一个应用的UI来查看应用的布局和组件以及相关的属性. 一 ...
最新文章
- 欧拉公式——真正的宇宙第一公式
- JavaScript与TypeScript总结
- python 简易HTTP服务器搭建
- Apache搭建多个站点方法详解
- 时序分析:KMP算法用于序列识别
- 20张图表达程序员的心酸
- 黑马Android全套视频无加密完整版
- 我的开发笔记---UIPageControl的详细使用
- 阿里云ubuntu服务器安装使用mysql并配置远程连接记录
- Java的对象和类 以学生管理系统为例
- k3c最新官改非常稳定了_2020国庆过后玉米价格最新行情走势
- 用mysql做宠物商店项目_使用Java实现数据库编程 项目(宠物商店)
- 支持javascript的ppt软件_有哪些辅助工具,可以让PowerPoint软件更强大?
- 《财务报表分析从入门到精通》——读书笔记
- html+css实现星系图
- Java代码实现奇数和偶数的判断
- 【Unity】 HTFramework框架(三十九)UI的数据驱动模式,MVVM
- st visual develop STM8 软件配置教程
- pandas学习-变形-task15
- 关于固态硬盘的一些总结
热门文章
- php txt 下载文件,PHP下载单个TXT文件
- git工作区状态(2)
- mysql 主备心跳监测配置_mysql主备配置
- bzoj 3356: [Usaco2004 Jan]禁闭围栏(扫描线+树状数组)
- 用法getline(cin,a)和cin.getline(a,20) 能将空格输出
- [机器学习] 概念解析:从经验风险、结构风险到代价函数、损失函数、目标函数
- Python下APScheduler的快速指南
- c#获取屏幕上某坐标点的颜色
- CSS样式设置语法全解,样式优先级、值和单位、字体、文本、块级元素,行内元素,替换元素、非替换元素、display、float、position、table、li、光标、边距边框、轮廓、颜色背景
- 回调地狱以及用promise怎么解决回调地狱