#-*- coding: utf-8 -*-
importos,re,timeimportxml.etree.cElementTree as ETreeclassElement(object):def __init__(self):
self.tempFile=os.getcwd()
self.pattern= re.compile(r"\d+")def __uidump(self):
os.popen("adb shell uiautomator dump /data/local/tmp/uidump.xml")
time.sleep(1)
os.popen("adb pull /data/local/tmp/uidump.xml" +self.tempFile)
time.sleep(2)def __element(self, attrib, name):
self.__uidump()
tree= ETree.ElementTree(file=self.tempFile + "\\uidump.xml")
treeIter= tree.iter(tag="node")for elem intreeIter:if elem.attrib[attrib] ==name:
bounds= elem.attrib["bounds"]
coord=self.pattern.findall(bounds)
xpoint= (int(coord[2]) - int(coord[0])) / 2.0 +int(coord[0])
ypoint= (int(coord[3]) - int(coord[1])) / 2.0 + int(coord[1])returnxpoint, ypointdef __elements(self, attrib, name):
list=[]
self.__uidump()
tree= ET.ElementTree(file=self.tempFile + "\\uidump.xml")
treeIter= tree.iter(tag="node")for elem intreeIter:if elem.attrib[attrib] ==name:
bounds= elem.attrib["bounds"]
coord=self.pattern.findall(bounds)
xpoint= (int(coord[2]) - int(coord[0])) / 2.0 +int(coord[0])
ypoint= (int(coord[3]) - int(coord[1])) / 2.0 + int(coord[1])
list.append((xpoint, ypoint))returnlistdeffindElementByName(self, name):return self.__element("text", name)deffindElementsByName(self, name):return self.__elements("text", name)deffindElementByClass(self, clsname):return self.__element("class", clsname)deffindElementsByClass(self, clsname):return self.__elements("class", clsname)deffindElementById(self, id):return self.__element("resource-id", id)deffindElementsById(self, id):return self.__elements("resource-id", id)classEvent(object):def __init__(self):
process= os.popen("adb connect 127.0.0.1:7555")print(process.read())deftouch(self, dx, dy):
os.popen("adb shell input tap %s %s" %(str(dx), str(dy)))
time.sleep(1)defmain():
element=Element()
event=Event()whileTrue:
time.sleep(11)
ele= element.findElementById(u"com.smile.gifmaker:id/left_btn")
event.touch(ele[0], ele[1])
time.sleep(1)
ele= element.findElementById(u"com.smile.gifmaker:id/tab_name")
event.touch(ele[0], ele[1])
time.sleep(1)
ele= element.findElementById(u"com.smile.gifmaker:id/follower")
event.touch(ele[0], ele[1])
time.sleep(11)
ele= element.findElementById(u"com.smile.gifmaker:id/left_btn")
event.touch(ele[0], ele[1])
time.sleep(2)
ele= element.findElementById(u"com.smile.gifmaker:id/left_btn")
event.touch(ele[0], ele[1])
time.sleep(1)if __name__ == '__main__':
main()