首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Android活动中获取所有可点击的视图

如何在Android活动中获取所有可点击的视图
EN

Stack Overflow用户
提问于 2017-04-28 15:17:42
回答 1查看 577关注 0票数 1

我想写一个应用程序爬虫。为此,我想选择Android活动中所有可点击的按钮/图像/图标。然后一个接一个地点击。我应该在这里使用什么以及如何使用- Appium、UIAutomator、MonkeyRunner还是其他?

EN

回答 1

Stack Overflow用户

发布于 2017-04-29 11:53:03

AndroidViewClient/culebra可以帮助您。

这个脚本几乎完全由culebra生成,它完成了您想要做的事情。

代码语言:javascript
运行
复制
#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''
Copyright (C) 2013-2017  Diego Torres Milano
Created on 2017-04-28 by Culebra v13.3.0
                      __    __    __    __
                     /  \  /  \  /  \  /  \ 
____________________/  __\/  __\/  __\/  __\_____________________________
___________________/  /__/  /__/  /__/  /________________________________
                   | / \   / \   / \   / \   \___
                   |/   \_/   \_/   \_/   \    o \ 
                                           \_____/--<
@author: Diego Torres Milano
@author: Jennifer E. Swofford (ascii art snake)
'''


import re
import sys
import os


from com.dtmilano.android.viewclient import ViewClient

TAG = 'CULEBRA'

_s = 5
_v = '--verbose' in sys.argv


kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False}
device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1)
kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': False, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True}
vc = ViewClient(device, serialno, **kwargs2)
vc.dump()

def cic(view):
    if view.isClickable():
        print "should click on", view.getId()
        # view.click()

vc.traverse(transform=cic)

请注意,如果单击某个视图,并且屏幕发生变化,则可能需要再次调用vc.dump()来获取新树。

另外,请看一下culebra concertina mode,它做的事情与你想要的相似,详细解释了in this post

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43674266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档