- 超级版主
- 1228894
- 26984
- 25
- 8059 朵
- 36138 个
- 4755 个
- 421340
- 2012-07-18
|
1#
t
T
发表于 2022-02-28 18:42
|
|只看楼主
Jsd插件下载:- Jsd.rar (, 下载次数:1000)
By节点分析器下载:XML分析器完整视频下载:链接: https://pan.baidu.com/s/1Vyv0-eZ9UcZrnoDEgX2Sgw 提取码: neqq例子一览(体会下不用图色用元素的魅力):- 醒目提示 "易码/山海/紫猫初始化"
- PutAttachment "", "医院名称.txt"
- Import "tuling.mqle"
- Import "ym.mqle"
- Import "ShanHai.lua"
- Import "zm.luae"
- Dim 项目编号,最终返回手机号,最终返回短信,令牌,手机号
- 项目编号 = "25827"
- 令牌=ym.登录("278245370", "278245370")
- ym.信息 (令牌)
- 醒目提示 "Js初始化"
- PutAttachment "/data/local/tmp", "jsdroid_cmd.apk"
- PutAttachment "/data/local/tmp","JsAndroid.js"
- Import "JsDroid.luae"
- JsDroid.StartServer()
- If JsDroid.WaitStart(5000) Then
- TracePrint "启动成功"
- JsDroid.Include "/data/local/tmp/JsAndroid.js"
- JsDroid.OpenwebMode
- Else
- TracePrint "启动失败"
- End If
- 醒目提示 "脚本开始"
- '=========================================================
- Dim 内容,随机姓名,这是第几次
- Dim 科室=Array("内科","外科","妇产科","儿科","中医科","全科","预防保健科","皮肤科","眼科","耳鼻咽喉科","口腔科","康复科","临终关怀科","医学检验科","医学影像科","传染科","病理科","药剂科")
- Dim 技术职称=Array("主任医师","副主任医师","主治医师","医师","医士","村医","主任护师","副主任护师","主管护师","护师","护士","研究员","副研究员","助理研究员","实习研究员","主任技师")
- Dim 行政职务=Array("院长","副院长","科室/部门主任","科室/部门副主任","科长","副科长","科员/职员/普通医师","其他")
- Do
- 这是第几次 = 这是第几次 + 1
- 醒目提示 "准备注册第"&这是第几次&"个账号!!!"
- 内容 = 读取一行()
- 醒目提示 内容
- ShanHai.AppClean ("com.picahealth.yunque")'清理缓存
- RunApp "com.picahealth.yunque", ".activitys.register.RegistActivity"
- 等待出现("By.text('已有账号?登录')", False, "已有账号?登录")
- 最终返回手机号=ym.获取手机号(令牌,项目编号)
- TracePrint 最终返回手机号
- InputText 最终返回手机号
- 判断到指定页面 "By.text('获取验证码')", True, "获取验证码"
- 最终返回短信 = ym.获取短信(令牌, 项目编号,最终返回手机号)
- TracePrint 最终返回短信
- 判断到指定页面 "By.text('验证码')", True, "验证码"
- InputText 最终返回短信
- 判断到指定页面 "By.res('com.picahealth.yunque:id/ed_pwd').clazz('android.widget.EditText').pkg('com.picahealth.yunque')", True , "密码"
- InputText "a123456"
- 判断到指定页面 "By.text('注册')", True, "注册"
- ym.释放 令牌, 项目编号, 最终返回手机号
- '**********************************************************
- Do
- 随机姓名 = tuling.姓名生成(随机(1, 880))
- 醒目提示 随机姓名
- 延迟 1
- Loop Until 随机姓名<> null
- 等待出现("By.text('医务工作者')", False, "医务工作者")
- InputText 随机姓名
- 等待出现 "By.text('单位')", True, "单位"
- 等待出现 "By.clazz('android.widget.RelativeLayout').pkg('com.picahealth.yunque')", True, "我知道了")
- 等待出现 "By.clazz('android.widget.RelativeLayout').pkg('com.picahealth.yunque')", True, "我知道了"
- 等待出现 "By.text('输入关键字搜索您的单位')", True, "搜索"
- Do
- 延迟 3
- if 判断到指定页面("By.text('全国')",True,"全国")=True Then
- Exit Do
- Else
- 等待出现 "By.text('取消')", True, "取消"
- 等待出现 "By.text('输入关键字搜索您的单位')", True, "搜索"
- End If
- Loop
- 延迟 5
- For 1'滑动1次
- Swipe 170, 1150, 170, 920, 1000
- Next
- 等待出现 "By.text('辽宁省')", True, "辽宁省"
- //等待出现("By.text('辽宁省').res('com.picahealth.yunque:id/textView').clazz('android.widget.TextView').pkg('com.picahealth.yunque')", True , "吉林省2")
- 等待出现 "By.text('鞍山市')", True, "鞍山市"
- 等待出现 "By.text('铁西区')", True, "铁西区"
- 等待出现 "By.text('启明街道办事处')", True, "启明街道办事处"
- 等待出现 "By.text('输入关键字搜索您的单位')", True, "搜索"
- InputText 内容
- 等待出现("By.res('com.picahealth.yunque:id/iv_add_hospital').clazz('android.widget.ImageView').pkg('com.picahealth.yunque')"),True,"+号"
- 等待出现("By.text('请输入单位名称')",True,"请输入单位名称")
- InputText 内容
- 等待出现 "By.text('确定')", True, "确定"
- 等待出现 "By.text('科室/部门')", True, "单位"
- 等待出现 "By.text('" & 科室(随机(0, UBOUND(科室))) & "')", True, "选择科室"
- 等待出现 "By.text('技术职称')", True, "技术职称"
- 等待出现 "By.text('" & 技术职称(随机(0, UBOUND(技术职称))) & "')", True, "技术职称"
- 等待出现 "By.text('行政职务')", True, "行政职务"
- 等待出现 "By.text('" & 行政职务(随机(0, UBOUND(行政职务))) & "')", True, "选择行政职务"
- 等待出现 "By.text('确定')", True, "行政职务"
- 延迟 4
- Loop
- Function 随机(最小值, 最大值)
- Randomize
- 随机 = Int((最大值 - 最小值 + 1) * Rnd() + 最小值)'随机第一行到最后一行其中一个数字
- End Function
- Sub 等待出现(by, 是否点击, 提醒)
- Do Until 判断到指定页面(by, 是否点击, 提醒) =True
- 延迟 2
- Loop
- End Sub
- Function 判断到指定页面(by, 是否点击, 提醒)
- 判断到指定页面=False
- If JsDroid.FindNode(by, "node") Then
- 判断到指定页面=True
- 醒目提示 "找到--" & 提醒
- If 是否点击 = True Then
- 延迟 1
- TracePrint JsDroid.Click("node")
- End If
- Else
- 醒目提示 "没找到**"&提醒
- End If
- End Function
- Sub 延迟(秒)
- Delay 1000*秒
- End Sub
- Sub 醒目提示(参数1)
- TracePrint "==========================================="
- TracePrint 参数1
- End Sub
- Function 读取一行()
- Dim 医院名称记录,j,Var1
- 医院名称记录 = File.ReadLines(GetTempDir() & "/医院名称记录.txt")
- If 医院名称记录(0) = null Then
- j = 0
- Else
- j = 医院名称记录(0)
- End If
- TracePrint "本次读取第----"&j&"行"
- Var1 = File.ReadLines(GetTempDir() & "/医院名称.txt")
- If Int(j) > Int(UBOUND(Var1)) Then
- TracePrint "重置文本"
- J=0
- End If
- 读取一行 = Var1(j)
- j = j+ 1
- Dir.Delete GetTempDir()&"/医院名称记录.txt"
- Call File.Write (GetTempDir() & "/医院名称记录.txt",j)
- End Function
复制代码 说明:步骤一[插件放置]:步骤二[启动]:- PutAttachment "/data/local/tmp", "jsdroid_cmd.apk"
- PutAttachment "/data/local/tmp","JsAndroid.js"
- Import "JsDroid.luae"
- JsDroid.StartServer()
- If JsDroid.WaitStart(5000) Then
- TracePrint "启动成功"
- JsDroid.Include "/data/local/tmp/JsAndroid.js"
- JsDroid.OpenwebMode
- Else
- TracePrint "启动失败"'第一次使用 如果启动失败重启模拟器,如果依然失败使用JsdVip高级版本
- End If
复制代码 步骤三[输出xml并分析by]:步骤四[点击测试]:- PutAttachment "/data/local/tmp", "jsdroid_cmd.apk"
- PutAttachment "/data/local/tmp","JsAndroid.js"
- Import "JsDroid.luae"
- JsDroid.StartServer()
- If JsDroid.WaitStart(5000) Then
- TracePrint "启动成功"
- JsDroid.Include "/data/local/tmp/JsAndroid.js"
- JsDroid.OpenwebMode
- Else
- TracePrint "启动失败"'第一次使用 如果启动失败重启模拟器,如果依然失败使用JsdVip高级版本
- End If
- TracePrint JsDroid.GetXml()
- If JsDroid.Click("By.text('启动功能').res('com.aa:id/btn_option_start').clazz('android.widget.Button').pkg('com.aa')") Then
- TracePrint "点击成功"
- Else
- TracePrint "点击失败"
- End If
复制代码 步骤5[说明]:
- 常用的只有点击节点[JsDroid.Click 点击节点]+判断节点[JsDroid.Exists 节点是否存在 ]+获取所有节点[JsDroid.FindNodeS 查找所有符合条件的节点信息 ]这三个命令
- 所有命令参数基本都是只填写一个By,例["By.text('启动功能').res('com.aa:id/btn_option_start').clazz('android.widget.Button').pkg('com.aa')"],,其中By为参数固定开头,每个.为一个特征间隔,比如text特征是'启动功能'、res特征是'com.aa:id/btn_option_start'
- by的后边特征可以乱序,也可以增减,特征越多获取错误几率越低,如果都一样就需要采用遍历获取其坐标等进行二次判断
|