android– 如何确定软键盘是否显示在屏幕上 – 使用monkeyrunner时

android– 如何确定软键盘是否显示在屏幕上 – 使用monkeyrunner时,第1张

概述我试图使用monkeyrunner自动化几个屏幕点击和条目(使用AndroidViewClient)每当屏幕上有编辑文本时,软键盘就会d出,如果我想通过findViewById按下按钮,(假设这个特定按钮在软键盘后面)就会失败.它不是单击此按钮,而是单击软键盘中的某个按钮.因此,作为一种解决方法,我需要通过猴子

我试图使用monkeyrunner自动化几个屏幕点击和条目(使用AndroidVIEwClIEnt)

每当屏幕上有编辑文本时,软键盘就会d出,如果我想通过findVIEwByID按下按钮,(假设这个特定按钮在软键盘后面)就会失败.它不是单击此按钮,而是单击软键盘中的某个按钮.因此,作为一种解决方法,我需要通过猴子跑步者按下键,以隐藏软键盘.

我的问题是如何确定从monkeyrunner运行时是否在屏幕上显示软键盘.

当我看着logcat时,我在看到软键盘时会看到以下内容

I/SurfaceFlinger( 2045): ID=143(28) createSurf 0x4326743c (720x593),1 flag=0, inputMethod

并在删除软键盘时显示此信息

I/SurfaceFlinger( 2045): ID=142 Removed inputMethod IDx=4 MapSz=3I/SurfaceFlinger( 2045): ID=142 Removed inputMethod IDx=-2 MapSz=3

如果有人可以提供如何从monkeyrunner脚本解析adb logcat输出的示例,如果找到任何合适的替代解决方案,我可以将其用作最后一个选项.

解决方法:

你在答案中提到的可能是AndroidViewClient的一个很好的补充,我会尽快加入.

无论如何,有一种方法可以获得相同的信息,但方式更复杂:

...from com.dtmilano.androID.vIEwclIEnt import VIEwClIEntvc = VIEwClIEnt(*VIEwClIEnt.connectToDeviceOrExit())vIEw = vc.findVIEwByIDOrRaise('ID/no_ID/1')vIEw.getXY() # getXY() calls __dumpswindowsinformation()for w in vIEw.windows:    if vIEw.windows[w].activity == 'inputMethod':        print vIEw.windows[w].visibility

11-FEB-15更新

最新的AndroIDVIEwClIEnt / culebra版本支持isKeyboardShown()方法.使用这样:

#! /usr/bin/env python# -*- Coding: utf-8 -*-'''copyright (C) 2013-2014  DIEgo Torres MilanoCreated on 2015-02-11 by Culebra v10.0.8                      __    __    __    __                     /  \  /  \  /  \  /  \ ____________________/  __\/  __\/  __\/  __\________________________________________________/  /__/  /__/  /__/  /________________________________                   | / \   / \   / \   / \   \___                   |/   \_/   \_/   \_/   \    o \                                            \_____/--<@author: DIEgo Torres Milano@author: Jennifer E. Swofford (ascii art snake)'''import reimport sysimport ostry:    sys.path.insert(0, os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))except:    passfrom com.dtmilano.androID.vIEwclIEnt import VIEwClIEntTAG = 'CulEBRA'_s = 5_v = '--verbose' in sys.argvkwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False}device, serialno = VIEwClIEnt.connectToDeviceOrExit(**kwargs1)print "Is keyboard shown:", device.isKeyboardShown()
总结

以上是内存溢出为你收集整理的android – 如何确定软键盘是否显示在屏幕上 – 使用monkeyrunner时全部内容,希望文章能够帮你解决android – 如何确定软键盘是否显示在屏幕上 – 使用monkeyrunner时所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1114425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存