Exemple #1
0
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
Exemple #3
0
 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
Exemple #4
0
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
Exemple #5
0
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)
Exemple #6
0
 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
Exemple #8
0
def test_server_version():
    client = adbutils.AdbClient("127.0.0.1", 5037)
    version = client.server_version()
    assert isinstance(version, int)
Exemple #9
0
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')
Exemple #10
0
 def __init__(self, host: str, port: int):
     self.__adb_client = adbutils.AdbClient(host, port)
     self.__adb_tools_dict: Dict[str, AdbTool] = dict()
Exemple #11
0
 def __init__(self):
     self.client = adbutils.AdbClient(host="127.0.0.1", port=5037)
     self.device = self.client.device()
     print(self.device)