2012-11-30 27 views
0

我正在用androidviewclient使用monkeyrunner测试Android 4.0.3的Gallery应用程序,当我尝试点击任何具有AVC touch()功能的相册时,它正在选择相册。它应该打开一个专辑。 我打开了一个相册代码Viewclient touch()作为长时间工作,它应该像点击一样工作?

MonkeyRunner.sleep(3) 
    vc=ViewClient(device,serialNo) 
    firstAlbum = vc.findViewById('id/no_id/1') 
    firstAlbum.touch(MonkeyDevice.DOWN_AND_UP) 

请让我知道,如果我做错了什么?

回答

0

您的相册不太可能有uniqueId'id/no_id/1'。您可以使用dump.py进行验证。如果我在4.0.3库运行dump.py --uniqueId我获得

com.android.internal.policy.impl.PhoneWindow$DecorView NO_ID None id/no_id/1 
    android.widget.LinearLayout NO_ID None id/no_id/2 
     android.view.ViewStub id/action_mode_bar_stub None id/action_mode_bar_stub 
     android.widget.FrameLayout NO_ID None id/no_id/3 
     android.widget.TextView id/title Gallery id/title 
     android.widget.FrameLayout id/content None id/content 
     android.widget.RelativeLayout id/root None id/root 
      android.widget.GridView id/albums None id/albums 
       android.widget.LinearLayout NO_ID None id/no_id/4 
        com.android.camera.GalleryPickerItem id/thumbnail None id/thumbnail 
        android.widget.TextView id/title All pictures (3) id/title/1 
       android.widget.LinearLayout NO_ID None id/no_id/5 
        com.android.camera.GalleryPickerItem id/thumbnail None id/thumbnail/1 
        android.widget.TextView id/title Download (3) id/title/2 

所以,我想你想的第一张专辑,然后我会用:

vc = ViewClient(*ViewClient.connectToDeviceOrExit()) 
firstAlbum = vc.findViewWithTextOrRaise(re.compile('All pictures \(\d+\)')) 
firstAlbum.touch() 

或(如oneliner):

ViewClient(*ViewClient.connectToDeviceOrExit()).findViewWithTextOrRaise(re.compile('All pictures \(\d+\)')).touch() 

使用正则表达式可以选择相册,与一起使用所有图片标题独立于标题中列出的图片数量。

+0

感谢您的回复,但问题不在于视图ID,问题在于touch()方法,当我使用touch(UP)时,touch不起作用,touch(down)它选择相册,当我我正在使用touch(DOWN_AND_UP)它正在做同样的事情选择专辑,它应该打开专辑。 BDW I'got打开专辑的解决方案,你可以在这里找到它http://stackoverflow.com/questions/13660496/device-touch-is-not-working-properly-for-gallery-application – NRP

+0

我不明白打开相册有什么问题? https://github.com/dtmilano/AndroidViewClient/blob/master/AndroidViewClient/examples/gallery-select-album.py –

+0

其实我不想选择我想打开专辑的专辑用于打开我正在使用touch()命令的相册,但只要我的相册被选中,它就可以工作。我希望你已经检查了链接http://stackoverflow.com/questions/13660496/device-touch-is-not-working-properly-for-gallery-application – NRP