控件查找器
from ascript.ios.node import Selector
控件查找器,通过约束方法,和查询方法,来获取屏幕中满足条件的控件.
方法
创建查找器
创建一个控件查找器
- 函数
#class
Selector()
- 参数
无
- 示例
from ascript.ios.node import Selector
# 创建一个选择器
selector = Selector()
查找一个控件
查找控件,返回一个满足条件的控件
- 函数
#class
Selector().find(timeout: int = 120)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| timeout | int | 否 | 查找控件的超时时间,默认120秒 |
- 返回值
Node 控件对象
- 示例
#案例:查找出符合条件的第一个控件
from ascript.ios.node import Selector
node = Selector().find()
if node:
#找到了控件
print(node)
#打印控件属性,耗时操作
print(node.info)
else:
print('没有找到任何控件')
查找所有控件
查找控件,返回满足条件的控件
- 函数
#class
Selector().find_all(timeout: int = 120)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| timeout | int | 否 | 查找控件的超时时间,默认120秒 |
- 返回值
Node[] 控件对象列表
- 示例
#案例:查找出所有符合条件的控件
from ascript.ios.node import Selector
nodes = Selector().find_all()
if nodes:
#找到了一组控件
print( len(nodes) )
else:
print('没有找到任何控件')
获取所有控件xml信息
该方法一般不推荐使用
xml信息获取非常耗时,效率远低于xpath约束,或属性约束.
- 函数
Selector.xml()
- 返回值
当前app xml 控件树信息
- 示例
# 获取当前应用的 xml控件树信息. 控件越多,速度越慢.
from ascript.ios.node import Selector
xml_info = Selector.xml()
print(xml_info)
xpath约束
通过xpath检索控件
xpath约束使用后,属性约束,和关系约束 将不再生效.
- 函数
Selector().xpath(value:str)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| value | str | 是 | xpath数据,xpath语法快速入门视频教程 |
- 示例
# 找到 属性名name 值为 开发者的控件
from ascript.ios.node import Selector
node = Selector().xpath("//*[@name='开发者']").find()
if node:
#找到了控件
print(node)
#打 印控件属性,比较耗时
print(node.info)
else:
print('没有找到任何控件')
属性约束
标签 label
通过 label 检索控件
label一般指显示在屏幕中的文字
- 函数
Selector().label(value:str,mode=0)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| value | str | 是 | 控件label值 |
| mode | int | 是 | 匹配模式 默认0:完全相同 1:包含在其中 |
- 返回值
Selector 返回控件查找器,用于链式编程
- 示例
# 查找label值“等于”Ascript文本的控件
from ascript.ios.node import Selector
node = Selector().label("Keep").find()
if node:
#找到了控件
print(node)
#打印控件属性,比较耗时
print(node.info)
else:
print('没有找到任何控件')
# 查找label值 “包含 ”Ascript文本的控件
from ascript.ios.node import Selector
node = Selector().label("Kee",1).find()
if node:
#找到了控件
print(node)
#打印控件属性,比较耗时
print(node.info)
else:
print('没有找到任何控件')
值 value
通过 value 检索控件
value 一般指控件的附加值,可通过控件查看器查找.
- 函数
Selector().value(value:str,mode=0)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| val | str | 是 | 控件value值 |
| mode | int | 是 | 匹配模式 默认0:完全相同 1:包含在其中 |
- 返回值
Selector 返回控件查找器,用于链式编程
- 示例
# 查找value值“等于”Ascript文本的控件
from ascript.ios.node import Selector
node = Selector().value("在iCloud中").find()
if node:
#找到了控件
print(node)
#打印控件所有属性,较为耗时
print(node.info)
else:
print('没有找到任何控件')
# 查找value值“包含”Ascript文本的控件
from ascript.ios.node import Selector
node = Selector().value("iCloud",Selector.MODE_CONTAINS).find()
if node:
#找到了控件
print(node)
#打印控件所有属性,较为耗时
print(node.info)
else:
print('没有找到任何控件')
名称 name
通过 name 检索控件
name 一般指控件的名称属性.
- 函数
Selector().name(value:str,mode=0)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| val | str | 是 | 控件value值 |
| mode | int | 是 | 匹配模 式 默认0:完全相同 1:包含在其中 |
- 返回值
Selector 返回控件查找器,用于链式编程
- 示例
# 查找name值“等于”Ascript文本的控件
from ascript.ios.node import Selector
node = Selector().value("name").find()
if node:
#找到了控件
print(node)
#打印控件所有属性,较为耗时
print(node.info)
else:
print('没有找到任何控件')
# 查找name值“包含”Ascript文本的控件
from ascript.ios.node import Selector
node = Selector().name("iCloud",Selector.MODE_CONTAINS).find()
if node:
#找到了控件
print(node)
#打印控件所有属性,较为耗时
print(node.info)
else:
print('没有找到任何控件')