Showing posts with label Browser. Show all posts
Showing posts with label Browser. Show all posts
Thursday, October 27, 2016
CulebraTester Calculator Demo
Android testing can be complicated, time-consuming, and tedious. What if it didn’t have to be?
CulebraTester provides a real-time point and click test recording through a web browser.
We are currently in private beta, so if you are interested in participating of this programme please fill the opt-in form and we will be adding your account as soon as possible.
Labels:
android,
AndroidViewClient,
Browser,
culebra,
emulator,
espresso,
google chrome,
gui,
python,
TDD,
test driven development,
test recorder,
tests
Friday, November 16, 2012
AndroidViewClient: Getting Browser's HTML page source
Standard Android Browser does not provide an option in its menu to view the HTML page source. Some workarounds like installing apps and then using Share page from Browser's menu has been described and also the use of Javascript and JQuery to add to a page has been detailed, but we are hungry for more. Needless to say, all these methods involve some manual step so I felt the need to find a completely automatic way of doing it.
Of course, to do it I would resort to our old pal AndroidViewClient. This is a very interesting example of its use because it lies far from testing and application or UI.
And so, without further ado, let me introduce you to the code...
And now a brief explanation of the most important pieces of this script.
Of course, to do it I would resort to our old pal AndroidViewClient. This is a very interesting example of its use because it lies far from testing and application or UI.
And so, without further ado, let me introduce you to the code...
#! /usr/bin/env monkeyrunner
'''
Copyright (C) 2012 Diego Torres Milano
Created on Oct 12, 2012
@author: diego
'''
import re
import sys
import os
# This must be imported before MonkeyRunner and MonkeyDevice,
# otherwise the import fails.
# PyDev sets PYTHONPATH, use it
try:
for p in os.environ['PYTHONPATH'].split(':'):
if not p in sys.path:
sys.path.append(p)
except:
pass
try:
sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
pass
from com.dtmilano.android.viewclient import ViewClient
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
VPS = "javascript:alert(document.getElementsByTagName('html')[0].innerHTML);"
PACKAGE = 'com.android.browser'
ACTIVITY = '.BrowserActivity'
COMPONENT = PACKAGE + "/" + ACTIVITY
URI = 'http://dtmilano.blogspot.com'
device, serialno = ViewClient.connectToDeviceOrExit()
device.startActivity(component=COMPONENT, uri=URI)
MonkeyRunner.sleep(3)
vc = ViewClient(device=device, serialno=serialno)
device.drag((240, 180), (240, 420), 10, 10)
url = vc.findViewByIdOrRaise('id/url')
url.touch()
MonkeyRunner.sleep(1)
device.press('KEYCODE_DEL', MonkeyDevice.DOWN_AND_UP)
for c in VPS:
device.type(c)
device.press('KEYCODE_ENTER', MonkeyDevice.DOWN_AND_UP)
MonkeyRunner.sleep(3)
vc.dump()
print vc.findViewByIdOrRaise('id/message').getText().replace('\\n', "\n")
device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP)
And now a brief explanation of the most important pieces of this script.
- Shebang, you know, to invoke monkeyrunner as the interpreter. I don't have to tell you more (if you are a poor Windows user you may have to invoke monkeyrunner from command line, I feel sad for you)
- Some comments and imports
- Read PYTHONPATH just in case you are using Eclipse and Pydev (this has been explained in this post)
- Then use ANDROID_VIEW_CLIENT_HOME environment variable to find AndroidViewClient in your system
- Some constants defined. VPS is the actual javascript to obtain the page source
- The standard way of connecting to the device or emulator in AndroidViewClient. This handles errors and timeout automatically solving many problems you find with bare monkeyrunner
- We start Browser
- Drag a bit to make the URL visible in case the page has scrolled
- Next, we find the View with ID id/url, which you know, contains the URL
- We touch to focus
- And type the javascript in VPS followed by ENTER
- By that time the alert dialog should be on screen so we take a new dump
- Now we find the View with ID id/message which contains the HTML and print it
- Finally, we press BACK to dismiss it
I hope you have enjoyed it as much as I did and this help you find new ways of using AndroidViewClient.
P.S. This script will be part of AndroidViewClient source code distribution examples
Labels:
android,
AndroidViewClient,
Browser,
monkeyrunner
Subscribe to:
Posts (Atom)