基于"学习APP"公共通用的函数代码:
- -- 公共函数文件
- function FindStr(x1,y1,x2,y2,name_str)
- --- 找到字符信息并单击该字符坐标
- --- 使用ocrEx本地神经进行文字数字信息查找
- --- FindStr(左上角x坐标,左上角y坐标,右下角x坐标,右下角y坐标,查找的名称)
-
- local res = ocrEx(x1,y1,x2,y2) -- 调用本地神经网络ocrEx函数
- if res ~= nil then
-
- for i=1,#res do -- 遍历框选范围内的字符串信息
- -- print('找字体并确认',res[i])
- local ret = string.find(res[i].text,name_str,1)
- if ret then
- print('找到'..name_str,res[i].l,res[i].t)
- --tap(res[i].l+numrandom,res[i].t+numrandom)
- --sleep(rnd(2000,2500))
- return math.tointeger(res[i].l),math.tointeger(res[i].t)
- end
-
- end
- end
-
- end
- function GetPic(x1,y1,x2,y2,pic_name)
- -- 识别图片
- -- GetPic(左上角x坐标,左上角y坐标,右下角x坐标,右下角y坐标,图片名)
- local x=-1 y=-1
-
- ret,x,y = findPic(x1,y1,x2,y2,pic_name..".png","101010",0.9)
- return ret,x,y
- end
- function ClickNode(class_tab)
- -- 获取一个节点信息
- -- ClickNode(节点table)
- local ret = nodeLib.findOne(class_tab,true)
- if ret ~= nil then
- --print(ret)
- nodeLib.click(ret)
- sleep(rnd(100,150)*10)
- return true
- else
- return false
- end
- end
- function FindAllNode(class_tab)
- -- 找节点信息,返回节点table
- -- FindAllNode(节点table)
- local ret = nodeLib.findAll(class_tab,true)
- if ret ~= nil then
- --print(ret)
- return ret
- end
-
- end
- function GetNodeText(node,str)
- -- 遍历节点判断符合的字符串并点击该节点
- -- GetNodeText(节点表,查找的字符串)
- if node ~= nil then
- for k,v in pairs(node) do
- if string.find(v.text, str, 1)then
- nodeLib.click(v)
- sleep(rnd(100,150)*10)
- return true
- end
-
- end
- end
-
- end
- function GetAllPics(x1,y1,x2,y2,picname)
- -- 找多个图片,返回所有图片的坐标
- -- GetAllPics(左上角x坐标,左上角y坐标,右下角x坐标,右下角y坐标,图片名)
- local arr = findPicAllPoint(x1,y1,x2,y2,picname..".png",1)
- if(arr ~=nil) then
- return arr
- end
- end
- function FindPic(x1,y1,x2,y2,pic_name)
- -- 找单个图片,返回坐标
- -- FindPic(左上角x坐标,左上角y坐标,右下角x坐标,右下角y坐标,图片名)
- local ret,x,y = findPic(x1,y1,x2,y2,pic_name..".png","101010",2,0.95)
-
- return x,y
- end
- function GetNodeTime(class_tab)
- -- 获取节点text里的时间 返回分钟数
- -- GetNodeTime(节点表)
- local ret = nodeLib.findOne(class_tab,false)
-
- if ret ~=nil then
- local Time = splitStr(ret.text,":")
-
- return math.tointeger(Time[1])
-
- end
- end
- function GetAllNode(class_tab,findstrPop)
- -- 获取匹配上的所有节点,匹配是否包含字符串,是就把这个节点赋值nil,返回节点table
- -- GetAllNode(节点table,查找的字符串)
- local ret = nodeLib.findAll(class_tab,true)
- if ret ~= nil then
- for k,v in pairs(ret) do
- if string.find(v.text,findstrPop, 1) then
- ret[k] = nil
- end
- end
- return ret
- end
-
-
- end
- function Splitstring(strdata,str1)
- -- 找查字符串是否包含子串
- -- Splitstring(字符串,查找的字符串)
- if string.find(strdata, str1, 1) then
-
- return true
- else
- return false
- end
- end
- function Split(strdata,str1,str2,time)
- -- 对字符串进行分割后获取整数型
- -- Split(字符串,查找字符1,查找字符2,数字字符)
- local strm = splitStr(strdata,str1)
-
- if string.find(strm[1], str2, 1) then
-
- return true
- end
-
- if string.match(strm[1],"%d%d") >= time then
-
- return true
- else
- return false
- end
-
- end
- function GetParentClick(class_str)
- -- 根据当前的节点信息获取父节点并点击
- -- GetParentClick(节点table)
-
- local ret = nodeLib.findParentNode(class_str,true)
- if ret ~= nil then
- ret.level = 12
- nodeLib.click(ret)
- end
- sleep(rnd(1500,2200))
- end
- function SleepTime(n1,n2)
- -- 等待挂起脚本,设置两个数字之间的等待时间
- -- SleepTime(数字2,数字2)
- local rndTime = rnd(n1*60,n2*60)
- print(string.format("需要等待 %s 分钟",rndTime/60))
- for i=1,rndTime do
- if i % 10 == 0then
- print("倒计时时间:",rndTime-i,"秒")
-
- end
- sleep(1000)
- end
-
- end
- function IfTwoNode(class_tab1,class_tab2,str1)
- -- 判断两个节点text字符串是否一直
- -- IfTwoNode(节点表1,节点表2,查找的字符串)
- local ret1 = nodeLib.findOne(class_tab1,true)
- local ret2 = nodeLib.findOne(class_tab2,true)
- if ret1.text ~=nil and ret2.text ~=nil then
- local currenttime = splitStr(ret1.text,str1)
- local totaltime = splitStr(ret2.text,str1)
- if ret1.text == ret2.text then
- return true,nil
- else
- return false,totaltime[1]-currenttime[1]
- end
- end
- end
- function FindNode(class_tab)
- -- 找查节点 找到返回节点表 ,一直找,直到找到才退出
- -- FindNode(节点表)
- while true do
- local ret = nodeLib.findOne(class_tab,true)
- if ret ~= nil then
- return ret
- end
- end
-
- end
- function CloseRun(time)
- -- 等待五分钟后关闭脚本
- -- CloseRun(时间分钟)
- for i=1,rnd(time*60) do
- sleep(1000)
- end
- return exitScript()
- end
复制代码
|