我想写一个应用程序爬虫。为此,我想选择Android活动中所有可点击的按钮/图像/图标。然后一个接一个地点击。我应该在这里使用什么以及如何使用- Appium、UIAutomator、MonkeyRunner还是其他?
发布于 2017-04-29 11:53:03
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 concertina mode,它做的事情与你想要的相似,详细解释了in this post。
https://stackoverflow.com/questions/43674266
复制相似问题