Skip to main content

控件查找器

from ascript.ios.node import Selector

控件查找器,通过约束方法,和查询方法,来获取屏幕中满足条件的控件.

方法

创建查找器

创建一个控件查找器

  • 函数
#class
Selector()
  • 参数

  • 示例
from ascript.ios.node import Selector
# 创建一个选择器
selector = Selector()

查找控件一个

查找控件,返回一个满足条件的控件

  • 函数
#class
Selector().find()
  • 返回值

Element 控件对象


  • 示例
#案例:查找出符合条件的第一个控件
from ascript.ios.node import Selector
node = Selector().find()

if node:
#找到了控件
print(node)
#打印控件属性,耗时操作
print(node.info)
else:
print('没有找到任何控件')

查找控件全部

查找控件,返回满足条件的控件

  • 函数
#class
Selector().find_all()
  • 参数

  • 返回值

Element[] 控件对象列表

  • 示例
#案例:查找出所有符合条件的控件
from ascript.ios.node import Selector
nodes = Selector().find_all()

if nodes:
#找到了一组控件
print( len(nodes) )
else:
print('没有找到任何控件')

属性约束

文本

通过 label 检索控件

label一般指显示在屏幕中的文字

  • 函数
Selector().label(value:str,mode=MODE_EQUAL)
  • 参数
参数类型是否必填说明
valuestr控件label值
modeint匹配模式
默认Selector.MODE_EQUAL:完全相同
Selector.MODE_CONTAINS:包含在其中
  • 返回值

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",Selector.MODE_CONTAINS).find()
if node:
#找到了控件
print(node)
#打印控件属性,比较耗时
print(node.info)
else:
print('没有找到任何控件')

描述

通过 value 检索控件

value 一般指控件的附加值,可通过控件查看器查找.

  • 函数
Selector().value(value:str,mode=MODE_EQUAL)
  • 参数
参数类型是否必填说明
valstr控件value值
modeint匹配模式
默认Selector.MODE_EQUAL:完全相同
Selector.MODE_CONTAINS:包含在其中
  • 返回值

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('没有找到任何控件')

类型

通过 type 检索控件

  • 函数
Selector().type(value:str,mode=MODE_EQUAL)
  • 参数
参数类型是否必填说明
valuestr控件type值
modeint匹配模式
默认Selector.MODE_EQUAL:完全相同
Selector.MODE_CONTAINS:包含在其中
  • 返回值

Selector 返回控件查找器,用于链式编程

  • 示例
# 查找value值等于Ascript文本的控件
from ascript.ios.node import Selector
node = Selector().type("XCUIElementTypeWindow").find()

if node:
#找到了控件
print(node)
#打印控件所有属性,较为耗时
print(node.info)
else:
print('没有找到任何控件')

是否可访问

通过 enabled 检索控件

该方法推荐,和其他约束联合调用,否则速度会比较慢

  • 函数
Selector().enabled(value:bool)
  • 参数
参数类型是否必填说明
valueboolTrue:可访问, False:不可访问
  • 返回值

Selector 返回控件查找器,用于链式编程

  • 示例
# 查找value值等于Ascript文本的控件
from ascript.ios.node import Selector
node = Selector().enabled(True).find()

if node:
#找到了控件
print(node)
#打印控件所有属性,较为耗时
print(node.info)
else:
print('没有找到任何控件')

是否显示

通过 visible 检索控件

该方法推荐,和其他约束联合调用,否则速度会比较慢

  • 函数
Selector().visible(value:bool)
  • 参数
参数类型是否必填说明
valueboolTrue:显示在页面的控件, False:没有显示在页面上的控件
  • 返回值

Selector 返回控件查找器,用于链式编程

  • 示例
# 查找value值等于Ascript文本的控件
from ascript.ios.node import Selector
node = Selector().visible(False).find()

if node:
#找到了控件
print(node)
#打印控件所有属性,较为耗时
print(node.info)
else:
print('没有找到任何控件')

绘制排序

通过 index 检索控件,当前层级的第几个控件

该方法推荐,和其他约束联合调用,否则速度会比较慢

  • 函数
Selector().index(value:int)
  • 参数
参数类型是否必填说明
valuebool要获取当前层级的第几个控件
  • 返回值

Selector 返回控件查找器,用于链式编程

  • 示例
# 查找 绘制排序层级为3的控件
from ascript.ios.node import Selector
node = Selector().index(3).find()

if node:
#找到了控件
print(node)
#打印控件所有属性,较为耗时
print(node.info)
else:
print('没有找到任何控件')