click点击节点
命令名称: `jsd.Click` 点击节点
语法格式: `jsd.Click(节点信息[,下标,超时时长]) `
命令参数: 参数1:必选,字符串型,节点信息。
参数2:可选,数值型,节点下标,节点初始下标为0
参数3:可选,数值型,执行超时时间,单位毫秒,默认执行10毫秒。
节点格式:
By.text("String")
By.text($("正则表达式"))
By.textContains("包含的文本")
By.textEndsWith("包含文本结尾")
By.textStartsWith("包含起始文本")
By.clazz("class")
By.clazz($("正则表达式"))
By.clazz(Object.class)
By.clazz("包名package","类名class")
By.desc("String")
By.desc($("正则表达式"))
By.descContains("包含")
By.descEndsWith("结尾")
By.descStartsWith("开头")
By.hasChild(参数是By选择器) 添加子选择器条件 By.text("QQ").hasChild(By.text("xxx"))
By.hasDescendant(By选择器) 添加一个后代选择器条件 By.text("QQ").hasDescendant(By.text("xx"))
By.hasDescendant(By选择器, 整数型深度)
By.longClickable(true/false) 长点击
By.pkg("包名")
By.pkg($("正则表达式"))
By.res("资源描述")
By.res($("正则表达式"))
By.res("包名","资源描述")
返回值: 布尔值型:成功返回true,失败返回false。
脚本例子: 复制代码
```Import "jsd.luae"
Import "shanhai.lua"
ShanHai.execute "chmod -R 777 " & GetTempDir()
If Dir.Exist(GetTempDir() & "jsd.apk") = 0 Then
TracePrint "释放附件"
PutAttachment GetTempDir(),"jsd.apk"
End If
//只需执行一次
If jsd.StartServer() Then
TracePrint "恭喜你!!可以使用插件"
Else
TracePrint "很遗憾!!!你无法使用插件"
End If
//例子1,普通点击
If jsd.Click("By.text('按键精灵')") Then
TracePrint "点击成功"
Else
TracePrint "点击失败"
End If
//例子2,和FindNode结合
If jsd.FindNode("By.text('按键精灵')","node") Then
TracePrint jsd.Click("node")
TracePrint "点击成功"
Else
TracePrint "点击失败"
End If
//例子3,点击下标7的节点
TracePrint jsd.Click ("By.clazz('android.widget.TextView')", 7)
//例子4,点击节点,超时2000毫秒
TracePrint jsd.Click ("By.clazz('android.widget.TextView')", 2000)
//例子5,点击节点,与FindNodes结合
If jsd.FindNodes("By.clazz('android.widget.TextView')","nodes") Then
TracePrint jsd.Click("nodes",5)
TracePrint "点击成功"
Else
TracePrint "点击失败"
End If
```
备注: `下标值不得大于超时时间。`