前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一日一技:Airtest连接多个手机的时候,如何start_app?

一日一技:Airtest连接多个手机的时候,如何start_app?

作者头像
青南
发布2019-06-04 19:15:03
5.9K0
发布2019-06-04 19:15:03
举报
文章被收录于专栏:未闻Code

我们在看Airtest的文档时,肯定会发现它有这样一段代码:

方框中的这一段代码的意思是,通过包名来启动一个App。

当你电脑只连接了1台手机的时候,这样做是没有问题的,但是你有没有考虑过,如果你电脑里面连接了很多台手机,那么你直接这样没头没尾的 start_app启动一个App,你启动的是哪个手机上的App?

要解决这个问题,就要从如何连接多台手机这个话题说起了。关于如何连接多台手机,Airtest的官方文档可以说是写的非常模糊。

经过我的测试,下面这种方案是最有效的:

代码语言:javascript
复制
from airtest.core.api import connect_device
device_1 = connect_device('android:///串号1')
device_2 = connect_device('android:///串号2')
device_3 = connect_device('android:///串号3')

当你这样连接了3个手机以后,如果直接执行 start_app,那么你会在 串号1对应的手机上启动App。

此时如果你执行下面的代码,你会发现返回一个有3个元素的列表:

代码语言:javascript
复制
>>> from airtest.core.api import G
>>> G.DEVICE_LIST
[<airtest.core.android.android.Android object at 0x118c55cc0>, <airtest.core.android.android.Android object at 0x118a4f550>, <airtest.core.android.android.Android object at 0x11b0ec358>]

这就是你当前连接的三个手机。如果你想控制第二个手机怎么办呢?使用下面的命令:

代码语言:javascript
复制
from airtest.core.api import set_current
set_current(1)start_app('包名')

set_current(1)里面的1对应了列表下标为1的这个手机。也就是第二个加入的手机。

同理,当你想在第三个手机上启动App时,你需要再切换为 set_current(2)

这种方式用起来确实比较麻烦,所以我一般会使用Poco的接口来直接操作每一个手机。所以此时需要把 device_1device_2device_3作为参数传入给 AndroidUiautomationPoco,代码如下:

代码语言:javascript
复制
from airtest.core.api import connect_device
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
device_1 = connect_device('android:///串号1')
device_2 = connect_device('android:///串号2')
device_3 = connect_device('android:///串号3')
poco_1 = AndroidUiautomationPoco(device_1, use_airtest_input=True, screenshot_each_action=False)
poco_2 = AndroidUiautomationPoco(device_2, use_airtest_input=True, screenshot_each_action=False)
poco_3 = AndroidUiautomationPoco(device_3, use_airtest_input=True, screenshot_each_action=False)
poco_1(text='微信').click()
poco_2(text='微信').click()
poco_3(text='微信').click()

使用这种方式,就不需要来回切换,并且还可以使用多线程直接同时控制每一台手机。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档