Skip to main content

控件对象

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)
  • 参数
参数类型是否必填说明
selectorSelector控件选择器
  • 返回值

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)
  • 参数
参数类型是否必填说明
selectorSelector控件选择器
  • 返回值

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)
  • 参数
参数类型是否必填说明
*valfloat可变参数获取第val个父控件
默认获取所有父元素
(2):获取爷爷元素
(3):获取太爷爷元素
(1,3):获取第1和第3个父元素
(1.3):获取第1-3 之间的所有父元素
  • 返回值

NodeNode[] 结果为一个的时候:控件对象 返回结果多个的时候:列表

  • 示例
#案例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)
  • 参数
参数类型是否必填说明
*valfloat可变参数获取第val个子控件
默认获取所有孩子控件
(1):获取第1个孩子控件
(-1):获取倒数第1个孩子
(1.3):获取1-3之间的所有孩子
(-1.3):获取倒数 1-3之间的所有孩子
(1,3):获取第1个和第3个子控件
  • 返回值

NodeNode[] 结果为一个的时候:控件对象 返回结果多个的时候:列表

  • 示例
# 二次检索 获取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)
  • 参数
参数类型是否必填说明
*valfloat可变参数获取第val个子控件
默认获取所有兄弟控件
(1):获取第1个兄弟控件
(1,2):获取第1和第2个兄弟控件
(1.4):获取1-4之间的所有兄弟控件
(0.1):获取当前控件的下一个兄弟控件
(-0.1):获取当前控件的上一个兄弟控件
(-1):获取倒数第1个兄弟控件
  • 返回值

NodeNode[] 结果为一个的时候:控件对象 返回结果多个的时候:列表

  • 示例
# 二次检索 # 获取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)
  • 参数
参数类型是否必填说明
oreint滑动方向
1:向前滑动-(默认)
-1:向后滑动
  • 示例
# 控件向前滑动
#导包
from ascript.android.node import Selector

node = Selector().type("RecyclerView").find()
if node:
node.slide(-1)

控件输入

立即指定控件输入信息, 控件无论是否在界面上显示与否,都可输入

  • 函数
.input(msg:str)
  • 参数
参数类型是否必填说明
msgstr输入的信息
"":清空输入框中的值 (默认)
  • 示例
# 当前控件 输入文本
from ascript.android.node import Selector
node = Selector().id("com.aojoy.airscript:id/search_bar_text").type("EditText").find()
if node:
node.input("自在老师讲的不错")