существуетИспользуйте Airtest для сверхбыстрой разработки сканера приложенийВ конце статьи мы оставили хвостик: Как активировать беспроводной режим Airtest и управлять телефоном без USB-кабеля?
В этой статье речь пойдет о конкретном методе. Есть два способа: первый — управлять телефоном в IDE Airtest. Второй — управлять удаленным телефоном в коде Python.
Начните открывать порт adb на телефоне
Независимо от того, какой метод используется, для удаленного управления телефоном вам необходимо сначала открыть порт adb на телефоне. На этом этапе вы должны сначала подключить телефон к компьютеру с помощью USB-кабеля.
Выполните команду в терминале:
adb tcpip 48887
Номер порта 48887 может быть установлен самостоятельно на другие номера портов, но он не может конфликтовать с существующим портом.
После выполнения команды можно отключить USB-кабель. Следующим шагом является удаленное управление телефоном.
Беспроводное дистанционное управление мобильным телефоном в AirtestIDE
Откройте Airtest и щелкните удаленное соединение, обведенное красной рамкой ниже:
Во всплывающем поле ввода введите:
adb connect 手机IP:端口
IP-адрес мобильного телефона можно узнать в беспроводном маршрутизаторе или в системных настройках мобильного телефона. Порт — это порт, установленный в предыдущей команде.
Например:
adb connect 192.168.0.102:48887
Как показано ниже.
нажмитеconnect
, телефон появится в списке устройств выше. Дважды коснитесь его, чтобы подключить телефон по беспроводной сети и увидеть экран телефона.
Управление телефоном в Python
Во-первых, есть проблема с официальной документацией Airtest: если вы будете следовать документации при написании кода, это не удастся.
В официальной документации ввоздушный тест.читайте документ S.IO/this_cn/latshan…Вот пример того, как подключиться к удаленному телефону Android:
本地设备
# connect a remote device using custom params
connect_device("android://adbhost:adbport/1234566?cap_method=javacap&touch_method=adb")
Этот код выглядит так, как будто вы могли бы написать код Python как:
from airtest.core.api import *
device_1 = connect_device('android://192.168.0.100:48887/手机串号?cap_method=javacap&touch_method=adb')
Если ты так пишешь,Вы не должны иметь возможность подключиться к телефону.
Правильный код:
from airtest.core.api import *
device_1 = connect_device('android:///192.168.0.100:48887?cap_method=javacap&touch_method=adb')
Телефоном можно нормально управлять только так, как я тут пишу. Как показано на гифке ниже.
Полный код, задействованный в анимации:
from airtest.core.api import *
import time
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
device_1 = connect_device('android:///192.168.0.100:48887?cap_method=javacap&touch_method=adb')
poco = AndroidUiautomationPoco(device_1, use_airtest_input=True, screenshot_each_action=False)
poco(text="知乎").click()
poco(name="com.zhihu.android:id/input").click()
poco(name="com.zhihu.android:id/input").set_text('古剑奇谭三')
time.sleep(2)
poco(name='com.zhihu.android:id/magi_title', textMatches='^古剑奇谭三.*$').click()
poco.swipe([0.5, 0.8], [0.5, 0.2])