def test_callback(app: wda.Client): event = threading.Event() def _cb(client: wda.Client, url: str): if url.endswith("/sendkeys"): pass assert isinstance(client, wda.Client) assert url.endswith("/status") event.set() app.register_callback(wda.Callback.HTTP_REQUEST_BEFORE, _cb) # app.register_callback(wda.Callback.HTTP_REQUEST_AFTER, lambda url, response: print(url, response)) app.status() assert event.is_set(), "callback is not called" # test remove_callback event.clear() app.unregister_callback(wda.Callback.HTTP_REQUEST_BEFORE, _cb) app.status() assert not event.is_set(), "callback is should not be called" event.clear() app.unregister_callback(wda.Callback.HTTP_REQUEST_BEFORE) app.status() assert not event.is_set(), "callback is should not be called" event.clear() app.unregister_callback() app.status() assert not event.is_set(), "callback is should not be called"
def test_client_status(client: wda.Client): """ Example response { "state": "success", "os": { "version": "10.3.3", "name": "iOS" }, "ios": { "ip": "192.168.2.85", "simulatorVersion": "10.3.3" }, "build": { "time": "Aug 8 2017 17:06:05" }, "sessionId": "xx...x.x.x.x.x.x" # added by python code } """ st = client.status() # json value assert st['state'] == 'success'
def test_preferences(c: wda.Client): print("Status:", c.status()) print("Info:", c.info) print("BatteryInfo", c.battery_info()) print("AppCurrent:", c.app_current()) # page_source = c.source() # assert "</XCUIElementTypeApplication>" in page_source app = c.session(bundle_id) selector = app(label="蜂窝网络") el = selector.get() el.click() print("Element bounds:", el.bounds) logger.info("Take screenshot: %s", app.screenshot()) app.swipe_right() app.swipe_up() app(label="电池").scroll() app(label="电池").click()
def test_client_session_without_argument(client: wda.Client): s = client.session('com.apple.Health') session_id = client.status()['sessionId'] assert s.id == session_id assert s.bundle_id == 'com.apple.Health' s.close()