Android:如何用程序检测Android设备中的google登录弹出窗口

2024-10-04 07:24:24 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here

我试过遵循monkeyrunner脚本:

#!/usr/bin/env monkeyrunner 
from __future__ import with_statement
import logging
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
from com.android.monkeyrunner.easy import EasyMonkeyDevice

logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

if __name__ == '__main__':
    udid = '02f4e07008e40dfc' #sys.argv[1]
    device = MonkeyRunner.waitForConnection(60, udid)
    easyDevice = EasyMonkeyDevice(device)
    logger.info(easyDevice.getFocusedWindowId())
    #h = device.getHierarchyViewer()
    #w = h.getFocusedWindowName()
    #logger.info(w)

但我得到:

^{pr2}$

我现在有一种ocr的方法来实现这一点,但是我喜欢基于monkeyrunner或javaapi的解决方案。在


Tags: namefromimportinfo脚本comdevicelogging
2条回答

使用AndroidViewClient/culebra您可以很容易地检测到包含文本You typed an incorrect password...的视图是否在聚焦窗口上(甚至使用正则表达式):

vc.findViewWithText('You typed an incorrect password.*')

我想这会解决你的问题。在

获取当前显示的活动的一种方法是使用命令

device.shell('dumpsys window displays')

然后找到Application tokens in Z order: 之后的下一行内容如下:

^{pr2}$

可以使用python解析它来提取当前活动,在本例中是com.andrew.apollo/.ui.activities.HomeActivity。在



另一种方法是使用命令

device.shell('dumpsys activity activities')

然后找到Running activities (most recent first):接下来的几行如下所示:

TaskRecord{428f0e90 #106 A=com.andrew.apollo.task U=0 sz=1}
  Run #3: ActivityRecord{419ec3e8 u0 com.andrew.apollo/.ui.activities.HomeActivity t106}

同样,您可以使用python进行解析以获得com.andrew.apollo/.ui.activities.HomeActivity

相关问题 更多 >