How to click on a View which contains specified text using monkeyrunner and Android ViewClient?

老子叫甜甜 提交于 2019-12-12 00:28:23

问题


I'm trying to simulate a click on an Android tablet using monkey runner and Android ViewClient. I want to click on a region/ view which has specific text. Here's an example of what i'm trying to do:

  • I have a script where I import MonkeyRunner, MonkeyDevice, ViewClient
    from com.dtmilano.android.viewclient import ViewClient
    from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

  • Connect the tablet and create a MonkeyDevice object
    device = MonkeyDevice.waitForConnection()

  • Using the device I then create an Android ViewClient object
    vc = ViewClient(device)

  • I open the Settings app on my tablet device.startActivity('com.android.settings/.Settings')

  • I then find the desired view using:
    displayView = findViewWithAttribute('text:mText', 'Display')

  • Then I try to click on that view (by simulating a touch event):
    displayView.touch()

The problem is that this script touches another part of the screen, somewhere in the left part of the WiFi line in the Settings app.

I looked in ViewClient's source code and found that the touch() method returns the (x,y) coordinates of the view and then uses the MonkeyDevice.touch() method. But the (x,y) coordinates returned are relative to the view's parent.

Does anybody know how to get the correct (x,y) coordinates of the view object?
Or at least a way to get the parents of the view.


回答1:


Problem solved. The latest version of AndroidViewClient solves my issue with the views.

I can use:

view = vc.findViewWithText('Dsiplay')
view.touch()


来源:https://stackoverflow.com/questions/11953927/how-to-click-on-a-view-which-contains-specified-text-using-monkeyrunner-and-andr

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!