def make_pinching(direction, center, size, percent, dead_zone, duration): w, h = size half_distance = percent / 2 dead_zone_distance = dead_zone / 2 pa0 = center pb0 = list(pa0) pa1 = list(pa0) pb1 = list(pa0) if direction == 'in': pa0[0] += w * half_distance pa0[1] += h * half_distance pb0[0] -= w * half_distance pb0[1] -= h * half_distance pa1[0] += w * dead_zone_distance pa1[1] += h * dead_zone_distance pb1[0] -= w * dead_zone_distance pb1[1] -= h * dead_zone_distance else: pa1[0] += w * half_distance pa1[1] += h * half_distance pb1[0] -= w * half_distance pb1[1] -= h * half_distance pa0[0] += w * dead_zone_distance pa0[1] += h * dead_zone_distance pb0[0] -= w * dead_zone_distance pb0[1] -= h * dead_zone_distance speed = math.sqrt(w * h) * (percent - dead_zone) / 2 / duration track_a = MotionTrack([pa0, pa1], speed) track_b = MotionTrack([pb0, pb1], speed) return track_a, track_b
def __init__(self, pocoobj, uiproxy_or_pos): super(PendingGestureAction, self).__init__() self.pocoobj = pocoobj self.track = MotionTrack() if isinstance(uiproxy_or_pos, (list, tuple)): self.track.start(uiproxy_or_pos) else: self.track.start(uiproxy_or_pos.get_position())
class PendingGestureAction(object): def __init__(self, pocoobj, uiproxy_or_pos): super(PendingGestureAction, self).__init__() self.pocoobj = pocoobj self.track = MotionTrack() if isinstance(uiproxy_or_pos, (list, tuple)): self.track.start(uiproxy_or_pos) else: self.track.start(uiproxy_or_pos.get_position()) def hold(self, t): self.track.hold(t) return self def to(self, pos): if isinstance(pos, (list, tuple)): self.track.move(pos) else: uiobj = pos self.track.move(uiobj.get_position()) return self def up(self): self.pocoobj.apply_motion_tracks([self.track])
def test(): #全部随机 随机减 x1 = 0.4 - random.uniform(0, 0.2) y1 = 0.7 - random.uniform(0, 0.1) #随机加 x2 = 0.1 + random.uniform(0, 0.1) y2 = -0.1 + random.uniform(0, 0.2) #生成十个中间点 xn = [] yn = [] i = 0 while (i < 20): xn.append(random.uniform(x1, x2)) yn.append(random.uniform(y1, y2)) i = i + 1 xn.sort(reverse=True) yn.sort(reverse=True) tracks = [ MotionTrack().start([x1, y1]).move([xn[0], yn[0]]).move([ xn[1], yn[1] ]).move([xn[2], yn[2]]).move([xn[3], yn[3]]).move([xn[4], yn[4]]).move( [xn[5], yn[5]]).move([xn[6], yn[6]]).move([xn[7], yn[7]]).move([ xn[8], yn[8] ]).move([xn[9], yn[9]]).move([xn[10], yn[10]]).move([ xn[11], yn[11] ]).move([xn[12], yn[12]]).move([xn[13], yn[13]]).move([ xn[14], yn[14] ]).move([xn[15], yn[15]]).move([xn[16], yn[16]]).move( [xn[17], yn[17]]).move([xn[18], yn[18]]).move([xn[19], yn[19]]), ] poco.apply_motion_tracks(tracks) sleep(8)
# pocounit.main() # from hunter_cli import Hunter, open_platform # from poco.drivers.netease.internal import NeteasePoco # # tokenid = open_platform.get_api_token('test') # hunter = Hunter(tokenid, 'xy2', 'xy2_at_408d5c116536') # poco = NeteasePoco('xy2', hunter) # # print poco('npc_conversation').offspring('list_options').offspring('Widget')[0].offspring('txt_content').nodes[0].node.data from airtest.core.api import connect_device from poco.utils.track import track_sampling, MotionTrack, MotionTrackBatch from poco.utils.airtest.input import AirtestInput mt = MotionTrack() mt1 = MotionTrack() mt2 = MotionTrack() mt.start([0.5, 0.5]).move([0.2, 0.5]).move([0.5, 0.5]).hold(1) mt1.start([0.5, 0.6]).move([0.2, 0.6]).hold(1).move([0.5, 0.6]) # mt2.hold(1).start([0.5, 0.4]).move([0.2, 0.4]).move([0.5, 0.4]) connect_device('Android:///') poco = AndroidUiautomationPoco(use_airtest_input=True) poco('2333中文', text='另一个中文').click() # # meb = MotionTrackBatch([mt1, mt]) # for e in meb.discretize(): # print e # print len(meb.discretize())
from airtest.core.api import connect_device from poco.utils.track import track_sampling, MotionTrack, MotionTrackBatch from poco.utils.airtest.input import AirtestInput from poco.drivers.android.uiautomation import AndroidUiautomationPoco from poco.drivers.cocosjs import CocosJsPoco from poco.utils.device import VirtualDevice # dev = connect_device('Android://10.252.60.142:5039/a783575e') dev = VirtualDevice('10.254.49.151') poco = CocosJsPoco(('', 5003), dev) for n in poco(): print(n.get_name()) mt0 = MotionTrack() mt1 = MotionTrack() mt2 = MotionTrack() mt0.start([0.5, 0.5]).move([0.2, 0.5]).move([0.5, 0.5]).hold(1) mt1.start([0.5, 0.6]).move([0.2, 0.6]).hold(1).move([0.5, 0.6]) mt2.hold(1).start([0.5, 0.4]).move([0.2, 0.4]).move([0.5, 0.4]) poco.apply_motion_tracks([mt0, mt1, mt2]) connect_device('Android:///') poco = AndroidUiautomationPoco(use_airtest_input=True) poco('2333中文', text='另一个中文').click() # # meb = MotionTrackBatch([mt1, mt]) # for e in meb.discretize(): # print e