appium+python自动化28-name定位
前言
appium1.5以下老的版本是可以通过name定位的,新版本从1.5以后都不支持name定位了
name定位报错
1.最新版appium V1.7用name定位,报错:
selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy 'name' is not supported for this session
2.这个报错是说name这个定位方法目前已经不支持了,因为appium从1.5版本开始就已经抛弃了name这种定位方法了。
xpath定位
1.既然name定位抛弃了,那就说明有更先进的定位代替了它,事实上xpath定位里面已经包含了name这种定位方法。
2.平常用过selenium,在定位页面上文本的时候,应该知道这个xpath语法:
//*[text()='页面text文本']
appium里面的xpath语法跟selenium有一点点区别:
//*[@text='页面text文本']
text属性
1.上面的xpath语法适合页面上这个text属性是唯一的,才好直接定位到,那么问题来了:如果页面上有多个text属性的文本一样,怎么办?
2.xpath语法里面*是代表匹配任意的值,在selenium里面*是匹配任意标签,appium里的*是匹配任意class名称,如果几个文本的class属性不一样,就可以通过以下组合:
//android.widget.TextView[@text='小说']
参考代码
# coding:utf-8
from appium import webdriver
from time import sleep
desired_caps = {
'platformName': 'Android',
'deviceName': '127.0.0.1:62001',
'platformVersion': '4.4.2',
'appPackage': 'com.baidu.yuedu',
'appActivity': 'com.baidu.yuedu.splash.SplashActivity'
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 获取当前界面activity
ac = driver.current_activity
print(ac)
# 等主页面activity出现
driver.wait_activity(".base.ui.MainActivity", 10)
# 点'知道了'
driver.find_element_by_id("com.baidu.yuedu:id/positive").click()
sleep(2)
# 定位页面上text属性
# driver.find_element_by_name("小说").click() # V1.5以后版本不支持name定位了
driver.find_element_by_xpath("//*[@text='小说']").click()
在学习过程中有遇到疑问的,可以appium+python QQ群交流:330467341
appium+python自动化28-name定位的更多相关文章
- appium+python自动化50-生成定位对象模板templet(jinja2)
前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以 ...
- Appium+python自动化4-元素定位uiautomatorviewer
前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是androi ...
- Appium+python自动化12-appium元素定位
前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性
- appium+python自动化49-yaml管理定位元素
前言 如何高效管理定位元素,这个是很有学问的问题,也是面试必问的[以下纯属个人观点,勿喷!]. 有的人用xml管理页面定位元素,这种逼格略高,但是小编认为学习成本大,贼麻烦. 有的人提到用excel管 ...
- Appium+python自动化12-appium元素定位【转载】
前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性
- Appium+python自动化4-元素定位uiautomatorviewer【转载】
前言 环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作. uiautomatorviewer是androi ...
- Appium+python自动化
名称 链接地址 Appium+python自动化8-Appium Python API(上) http://mp.weixin.qq.com/s/WvpT5oRrYY22avI95FuypQ Appi ...
- Appium+python自动化8-Appium Python API
Appium+python自动化8-AppiumPython API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts conte ...
- appium+python自动化52-多点触控MultiAction
前言 MultiAction是针对多点触控操作的,是TouchAction的一个补充模块 TouchAction用法参考前面的一篇:appium+python自动化33-TouchAction 多点触 ...
- Appium+python自动化20-查看iOS上app元素属性
前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素 Mac版的appium1.6的 ...
随机推荐
- 利用CSS变量实现悬浮效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- I/O流+统计文件词频
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- CSS: rem
.rem是(font size of the root element) 一般都是body的font-size为基准,即rem是相对于根元素. 字体单位 根据html根元素大小而定,同样可以作为宽度, ...
- html hidefocus="true"
最近学到html,看到别人写的代码带hidefocus="true",查了一下是使超链接不显示周围的虚线. hideFocus即隐藏聚焦,具有使对象聚焦失效的功能,其功能相当于: ...
- cookie和session的区别与联系
http://www.cnblogs.com/s1nker/p/4876284.html 基本概念 对于许多人来说,都知道的是,cookie是存储在客户端的,可以用来放需要长期使用的内容,例如用户密码 ...
- React-Native进阶_5.导航 Naviagtion
有这样一个组件 他可以控制页面跳转 返回,在移动端叫做导航控制器, 在RN中叫路由 我们使用的 react-native-navigation 是一个开源组件库介绍:A complete nativ ...
- Vue学习笔记 ——computed VS methods
对于最终的结果,两种方式确实是相同的.然而,不同的是计算属性是基于它们的依赖进行缓存的.计算属性只有在它的相关依赖发生改变时才会重新求值.这就意味着只要 message 还没有发生改变,多次访问 re ...
- Synchronized之一:基本使用
目录: <Java并发编程之三:volatile关键字解析 转载> <Synchronized之一:基本使用> Synchronized作用 1.Synchronized可以保 ...
- JavaScript库基本格式写法
/********************************************************************* * JavaScript库基本格式写法 * 说明: * 由 ...
- [svn]显示日志很慢 点击文件查看更改记录也贼慢
特此记录,防止以后忘记. 解决办法: 在 C:\Windows\System32\drivers\etc (win7) 中加入 即可 亦或将代码的url中pc名字改为ip地址也可以解决问题 对文件夹点 ...