Question

In the below code how can i use the ID's of the buttons or any view as i mentioned in my xml layout file. If i run dump.py -i , i am getting unique id's but not as i mentioned in my xml file.

touchProject = vc.findViewByIdOrRaise('id/btnHome')
touchProject.touch()

If i have to use Culebra , please tell me detail way of setting up environment and running it. I have Android View Client Home set up in environmental variables.

Thank you

My Current script look like below

#! /usr/bin/env monkeyrunner
'''
Copyright (C) 2012  Diego Torres Milano
Created on Feb 3, 2012

@author: diego
'''


import re
import sys
import os
import java
# this must be imported before MonkeyRunner and MonkeyDevice,
# otherwise the import fails
#try:
#ANDROID_VIEW_CLIENT_HOME = os.environ['ANDROID_VIEW_CLIENT_HOME']
#except KeyError:
#print >>sys.stderr, "%s: ERROR: ANDROID_VIEW_CLIENT_HOME not set in environment" %    __file__
#sys.exit(1)
#sys.path.append(ANDROID_VIEW_CLIENT_HOME + '/src')
try:
    sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
    pass
from com.dtmilano.android.viewclient import ViewClient
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
#starting script
print "start"
# Connects to the current device, returning a MonkeyDevice object
device, serialno = ViewClient.connectToDeviceOrExit()
#device connected
print "connection started"

# sets a variable with the package's internal name
package = 'org.droidtv.TvPlayerFunctionalTestApp'
# sets a variable with the name of an Activity in the package
activity = '.VideoViewActivity'
# sets the name of the component to start
runComponent = package + '/' + activity
# Runs the component
device.startActivity(component=runComponent)
#device set to sleep for 4 seconds 
print "wait for 4 seconds"
# first screen shot event
MonkeyRunner.sleep(2);
vc = ViewClient(device, serialno)
vc.dump()
#root = vc.getRoot()
#touchProject = vc.findViewWithTextOrRaise('', root)
touchProject = vc.findViewByIdOrRaise('id/btnHome')
touchProject.touch()
# wait for screenshot to save
MonkeyRunner.sleep(2);
# Takes a screenshot
result1 = device.takeSnapshot()
result1.writeToFile('E:\NewApp\shot1.png','png')
# wait for 3 seconds
MonkeyRunner.sleep(2);
# Pressing Watch Tv Button
print "wait for NextButton to be pressed"
vc.dump()
touchProject = vc.findViewByIdOrRaise('id/no_id/6')
touchProject.touch()
MonkeyRunner.sleep(2);
result1 = device.takeSnapshot()
result1.writeToFile('E:\NewApp\WatchTv.png','png')
print "Wait for Home Button to be pressed"
vc.dump()
touchProject = vc.findViewByIdOrRaise('id/no_id/11')
touchProject.touch()
result1 = device.takeSnapshot()
result1.writeToFile('E:\NewApp\Home.png','png')
MonkeyRunner.sleep(2);
print "Pressing Channel Setting Button"
vc.dump()
touchProject = vc.findViewByIdOrRaise('id/no_id/11')
touchProject.touch
result1 = device.takeSnapshot()
result1.writeToFile('E:\NewApp\ChannelSetting.png','png')
MonkeyRunner.sleep(2)
Was it helpful?

Solution

Downloading AndroidViewClient did the job for me .

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top