我想写一个App Crawler。为此,我想选择Android活动中可用的所有可点击按钮/图像/图标。然后逐个点击它们。我应该在这里使用什么,如何使用Appium,UIAutomator,MonkeyRunner?
答案 0 :(得分:1)
AndroidViewClient/culebra可以帮到你。
这个几乎完全由culebra
生成的脚本完成了你想要做的事情。
#! /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六角琴模式,它会执行类似于您想要的操作,详细解释in this post。