Source code for poco.drivers.std.test.simple

# coding=utf-8

import base64
import json
import traceback
import time
import unittest

from poco.drivers.std import StdPoco
from poco.utils.simplerpc.utils import sync_wrapper, RemoteError
from airtest.core.api import connect_device


[docs]class TestStandardFunction(unittest.TestCase):
[docs] @classmethod def setUpClass(cls): # u3d game 默认5001 # cocos2dx-lua 默认15004 connect_device('Android:///') # connect_device('Windows:///?class_name=UnityWndClass&title_re=Unity.*') cls.poco = StdPoco(15004)
[docs] @classmethod def tearDownClass(cls): time.sleep(1)
def test_dump(self): h = self.poco.agent.hierarchy.dump() s = json.dumps(h, indent=4) print(s) self.assertNotIn('"visible": false', s) def test_dump_include_invisible_node(self): h = self.poco.agent.hierarchy.dumper.dumpHierarchy(onlyVisibleNode=False) # .hierarchy是FrozenUIHierarchy s = json.dumps(h, indent=4) print(s) self.assertIn('"visible": false', s) def test_getSdkVersion(self): print(self.poco.agent.get_sdk_version()) def test_no_such_rpc_method(self): @sync_wrapper def wrapped(*args, **kwargs): return self.poco.agent.c.call('no_such_method') with self.assertRaises(RemoteError): wrapped() try: wrapped() except: traceback.print_exc() def test_get_screen(self): b64img, fmt = self.poco.snapshot() with open('screen.{}'.format(fmt), 'wb') as f: f.write(base64.b64decode(b64img)) def test_get_screen_size(self): print(self.poco.get_screen_size()) def test_motion_events(self): ui = self.poco()[0] ui.click() time.sleep(0.5) ui.long_click() time.sleep(0.5) ui.swipe([0.1, 0.1]) def test_set_text(self): textval = 'hello 中国!' node = self.poco(typeMatches='TextField|InputField|EditBox') node.set_text(textval) node.invalidate() actualVal = node.get_text() or node.offspring(text=textval).get_text() print(repr(actualVal)) self.assertEqual(actualVal, textval) def test_clear_text(self): node = self.poco(typeMatches='TextField|InputField|EditBox') node.set_text('val2333') node.set_text('') node.invalidate() actual_val = node.get_text() if actual_val is None: actual_val = node.offspring(text='').get_text() self.assertEqual(actual_val, '') def test_instanceId(self): for n in self.poco(): instance_id = n.attr('_instanceId') if instance_id: print(instance_id)