0

I have an AndroidViewClient script that is testing an activity. Clicking a button in my android app creates a new Activity instance. It seems like the ViewClient instance in my python script needs to be recreated after the new activity is launched - is that right? Something like this:

# My main activity is started here.
vc = ViewClient(device, serialno)
myBtn = vc.findViewById("btnStartNewActivity")
myBtn.touch() # this starts a new activity.
time.sleep(5)

# It seems like ViewClient is still pointing at 
# the previous activity. 
vc.traverse()

# I can do this to get it to see the new Activity:
vc = ViewClient(device, serialno)
vc.traverse() # now it's ok.

Is that the correct way to do it?

Thanks

user3203425
  • 2,919
  • 4
  • 29
  • 48

1 Answers1

0

No, there's no need to create a new instance, all you have to do every time the screen changes (whether it's a new Activity or the same one) is to call

vc.dump()

and the new View hierarchy is read (see ViewClient#dump()).

Recreating the instance, in you case, as your are not setting autodump parameter and its default value is true invokes dump() automatically, but invoking just dump() is much more efficient.

Diego Torres Milano
  • 65,697
  • 9
  • 111
  • 134