def connect_usb(serial=None, healthcheck=False): """ Args: serial (str): android device serial healthcheck (bool): start uiautomator if not ready Returns: UIAutomatorServer Raises: ConnectError """ adb = adbutils.AdbClient() if not serial: device = adb.must_one_device() else: device = adbutils.AdbDevice(adb, serial) # adb = adbutils.Adb(serial) lport = device.forward_port(7912) d = connect_wifi('127.0.0.1:' + str(lport)) if healthcheck: if not d.agent_alive: warnings.warn("backend atx-agent is not alive, start again ...", RuntimeWarning) # TODO: /data/local/tmp might not be execuable and atx-agent can be somewhere else device.shell_output("/data/local/tmp/atx-agent", "server", "-d") deadline = time.time() + 3 while time.time() < deadline: if d.alive: break elif not d.alive: warnings.warn("backend uiautomator2 is not alive, start again ...", RuntimeWarning) d.reset_uiautomator() return d
def adb_utils(self) -> adbutils.AdbDevice: if self._adb_utils is None: self.logger.debug("Starting ADB utility tools") adb = adbutils.AdbClient(host=self.automator.adb_host, port=self.automator.adb_port) self._adb_utils = adb.device(self.serial) return self._adb_utils
def __init__(self, proto_path, adb_host, adb_port, adb_address): self.adb = adbutils.AdbClient(host=adb_host, port=adb_port) if adb_address is not "": if ":" in adb_address: print(self.adb.connect(adb_address)) time.sleep(3) self.device = self.adb.device() else: self.device = self.adb.device(serial=adb_address) else: self.device = self.adb.device() self.proto_path = proto_path
def connect_usb(serial=None, healthcheck=False, init=True): """ Args: serial (str): android device serial healthcheck (bool): start uiautomator if not ready init (bool): initial with apk and atx-agent Returns: Device Raises: ConnectError """ adb = adbutils.AdbClient() if not serial: device = adb.device() else: device = adbutils.AdbDevice(adb, serial) lport = device.forward_port(7912) d = connect_wifi('127.0.0.1:' + str(lport)) d._serial = device.serial if not d.agent_alive or not d.alive: initer = Initer(device) if not initer.check_install(): if not init: raise RuntimeError( "Device need to be init with command: uiautomator2 init -s " + device.serial) initer.install() # same as run cli: uiautomator2 init elif not d.agent_alive: warnings.warn("start atx-agent ...", RuntimeWarning) # TODO: /data/local/tmp might not be execuable and atx-agent can be somewhere else device.shell( ["/data/local/tmp/atx-agent", "server", "--nouia", "-d"]) deadline = time.time() + 3 while time.time() < deadline: if d.agent_alive: break else: raise RuntimeError("atx-agent recover failed") if healthcheck: if not d.alive: warnings.warn("start uiautomator2 ...", RuntimeWarning) d.healthcheck() return d
class WXadb(object): adb = adbutils.AdbClient(host="127.0.0.1", port=5037) devices = {} def add_device(self, d_serial): d = self.adb.device(serial=d_serial) self.devices[d_serial] = d def send_WX_msg(self, msg): for s, d in self.devices.items(): d.keyevent("HOME") d.swipe(300, 1800, 300, 800, 0.5) d.shell("am start -n com.tencent.mm/com.tencent.mm.ui.LauncherUI") time.sleep(1) d.click(313, 1841) d.send_keys(msg) d.click(967, 1788)
def __init__(self): adb = adbutils.AdbClient(host="127.0.0.1", port=5037) self.devices = adb.device_list() self.drivers = [] for device in self.devices: self.drivers.append(DouyinDriver(device.serial))
def adb_connect(): adb = adbutils.AdbClient(host="127.0.0.1", port=5037) d = adb.device() if d != None: print("Device connected.") return d
def test_server_version(): client = adbutils.AdbClient("127.0.0.1", 5037) version = client.server_version() assert isinstance(version, int)
import adbutils import time FRIEND_LIST_NUMBER = 25 NEXT_FRIEND_SPOT = [1480, 770] emulator_id = "emulator-5554" adb = adbutils.AdbClient(host="127.0.0.1", port=5037) print(adb.devices()) d = adb.device(serial=emulator_id) #Goes thru half the list expecting half the list to finish clues for x in range(FRIEND_LIST_NUMBER // 2 + 5): time.sleep(5) d.click(NEXT_FRIEND_SPOT[0], NEXT_FRIEND_SPOT[1]) print('Friend #', x) print('Done')
def __init__(self, host: str, port: int): self.__adb_client = adbutils.AdbClient(host, port) self.__adb_tools_dict: Dict[str, AdbTool] = dict()
def __init__(self): self.client = adbutils.AdbClient(host="127.0.0.1", port=5037) self.device = self.client.device() print(self.device)