MonkeyRunner_Click on a View contains specified text using monkeyrunner and Android ViewClient

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 tabletdevice.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.


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

I can use:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值