控件对象
from ascript.android.node import Node
通过控件选择器 Selector() .find()
或 .find_all()
而获得此对象
属性
属性 | 备注 |
---|---|
id | 控件ID 部分APP中ID属性,随手机安装可能动态变化,谨慎使用 |
text | 控件的文本 |
type | 控件的类型 |
desc | 控件的描述 |
hintText | 控件的默认展示文本 |
packageName | 控件所属包名 |
rect | 控件在屏幕中的位置 rect 属性 rect.left:x坐标 rect.top:y坐标 rect 方法 rect.width():控件的宽度 rect.height():控件的高度 rect.centerX():控件的中心坐标X rect.centerY():控件的中心坐标Y |
childCount | 子控件数量 |
inputType | 输入类型 |
maxTextLength | 控件最大文本长度 |
drawingOrder | 是否可点击 |
checkable | 是否可选中 |
checked | 是否已选中 |
editable | 是否支持编辑 |
enabled | 是否可访问 |
visible | 是否针对用户展示 |
dismissable | 是否可取消 |
focusable | 是否可以获取焦点 |
focused | 是否已获取了焦点 |
longClickable | 是否可以长按 |
curren_x | 控件中心坐标x |
curren_y | 控件中心坐标y |
方法
内部查找
在此控件的子控件中继续查找
查找一个
找到满足条件的第一个控件
- 函数
控件对象.find(selector:Selector)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
selector | Selector | 是 | 控件选择器 |
- 返回值
Node 控件对象
- 示例
#案例:查找到一个控件,再此基础上再次进行二次查找
#导包
from ascript.android.node import Selector
node = Selector().id("com.aojoy.airscript:id/search_query_section").type("FrameLayout").find()
if node:
# 在node 控件中 查找 它的倒数第一个子控件
nchild = node.find( Selector().child(-1) )
if nchild:
print(nchild)
查找全部
找到满足条件的所有控件
- 函数
.find_all(selector:Selector)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
selector | Selector | 是 | 控件选择器 |
- 返回值
Node[] 控件对象列表
- 示例
#案例:查找到一个控件,再此基础上再次进行二次查找
#导包
from ascript.android.node import Selector
node = Selector().id("com.aojoy.airscript:id/search_query_section").type("FrameLayout").find()
if node:
# 在node 控件中 查找 它的所有孩子控件
nchilds = node.find_all( Selector().child() )
if nchilds:
for nchild in nchilds:
print(nchild)
获取父控件
找到满足条件的父控件
- 函数
.parent(*val: float)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
*val | float可变参数 | 是 | 获取第val个父控件默认获取所有父元素 (2):获取爷爷元素 (3):获取太爷爷元素 (1,3):获取第1和第3个父元素 (1.3):获取第1-3 之间的所有父元素 |
- 返回值
Node 或 Node[] 结果为一个的时候:控件对象 返回结果多个的时候:列表
- 示例
#案例1:查找到一个控件,再此基础上再次进行二次查找
#导包
from ascript.android.node import Selector
node = Selector().id("com.aojoy.airscript:id/search_query_section").type("FrameLayout").find()
if node:
# 获取node 控件的父元素
nP = node.parent(1)
if nP:
print(nP)
获取子控件
找到满足条件的子控件
- 函数
.child(*val: float)
- 参数
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
*val | float可变参数 | 是 | 获取第val个子控件默认获取所有孩子控件 (1):获取第1个孩子控件 (-1):获取倒数第1个孩子 (1.3):获取1-3之间的所有孩子 (-1.3):获取倒数 1-3之间的所有孩子 (1,3):获取第1个和第3个子控件 |
- 返回值
Node 或 Node[] 结果为一个的时候:控件对象 返回结果多个的时候:列表
- 示例
# 二次检索 获取node 控件的第一个孩子
#导包
from ascript.android.node import Selector
node = Selector().id("com.aojoy.airscript:id/search_query_section").type("FrameLayout").find()
if node:
node_child = node.child(1)
if node_child:
print(node_child)
# 二次检索 获取node 控件的所有孩子
#导包
from ascript.android.node import Selector
node = Selector().id("com.aojoy.airscript:id/search_query_section").type("FrameLayout").find()
if node:
node_childs = node.child()
if node_childs:
print(len(node_childs))
获取兄弟控件
找到满足条件的兄弟控件
- 函数
.brother(*val: float)