控件对象
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 | 控件最大文本长度 |
| clickable | 是否可点击 |
| drawingOrder | 绘制排序 |
| checkable | 是否可选中 |
| checked | 是否已选中 |
| editable | 是否支持编辑 |
| enabled | 是否可访问 |
| visible | 是否针对用户展示 |
| dismissable | 是否可取消 |
| focusable | 是否可以获取焦点 |
| focused | 是否已获取了焦点 |
| longClickable | 是否可以长按 |
| center_x | 控件中心坐标x |
| center_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)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| *val | float可变参数 | 是 | 获取第val个子控件默认获取所有兄弟控件(1):获取第1个兄弟控件 (1,2):获取第1和第2个兄弟控件(1.4):获取1-4之间的所有兄弟控件(0.1):获取当前控件的下一个兄弟控件 (-0.1):获取当前控件的上一个兄弟控件(-1):获取倒数第1个兄弟控件 |
- 返回值
Node 或 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_brother = node.brother(1)
if node_brother:
print(node_brother)
控件点击
立即指定 控件点击, 控件无论是否在界面上显示与否,都可点击
- 函数
.click()
- 示例
# 点击控件自身
#导包
from ascript.android.node import Selector
node = Selector().id("com.aojoy.airscript:id/search_bar_text").find()
if node:
node.click()
控件长按
立即指定控件长按, 控件无论是否在界面上显示与否,都可长按
- 函数
.long_click()
- 示例
# 点击控件自身
#导包
from ascript.android.node import Selector
node = Selector().id("com.aojoy.airscript:id/gv_historyrun").child(1).find()
if node:
node.long_click()
控件滑动
立即指定控件滑动, 控件无论是否在界面上显示与否,都可滑动
- 函数
.s li de(ore:int)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| ore | int | 是 | 滑动方向1:向前滑动-(默认)-1:向后滑动 |
- 示例
# 控件向前滑动
#导包
from ascript.android.node import Selector
node = Selector().type("RecyclerView").find()
if node:
node.slide(-1)
控件输入
立即指定控件输入信息, 控件无论是否在界面上显示与否,都可输入
- 函数
.input(msg:str)
- 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| msg | str | 否 | 输入的信息"":清空输入框中的值 (默认) |
- 示例
# 当前控件 输入文本
from ascript.android.node import Selector
node = Selector().id("com.aojoy.airscript:id/search_bar_text").type("EditText").find()
if node:
node.input("自在老师讲的不错")