Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The Future of Selenium for mobile web and nativ...
Search
Jason Carr
November 16, 2012
Technology
410
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Future of Selenium for mobile web and native apps
Jason Carr
November 16, 2012
More Decks by Jason Carr
See All by Jason Carr
Using Selenium to Test Native iOS Apps
maudineormsby
2
290
Other Decks in Technology
See All in Technology
しろおびから始める!ログ活用の第一歩
shumei_ito
0
950
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
230
Optunaの最新リリースv5.0について
pfn
PRO
0
120
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
190
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
4
1k
hackers_champloo_2026_tidb
makocchi
0
160
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
340
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
190
継続的なAIコスト最適化
bgpat
1
340
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
190
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
130
Featured
See All Featured
Amusing Abliteration
ianozsvald
1
350
Navigating Weather and Climate Data
rabernat
0
560
Crafting Experiences
bethany
1
380
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
Scaling GitHub
holman
464
140k
HDC tutorial
michielstock
2
960
Testing 201, or: Great Expectations
jmmastey
46
8.3k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
4 Signs Your Business is Dying
shpigford
187
23k
Transcript
The future of Selenium testing for mobile web and native
apps
Hi. I’m JASON CARR. I work at sauce LABS.
@maudineormsby
None
I’m a developer and contributor to SELENIUM and APPIUM
Context
For mobile web, Web Driver
Script Script Selenium Grid (optional) Selenium Grid (optional) iWebDriver.app
Script Script iWebDriver.app
iWebDriver.app from selenium import webdriver hub = ‘http://localhost:3001/wd/hub’ caps =
webdriver.DesiredCapabilities.IPHONE driver = webdriver.Remote(hub, caps) from selenium import webdriver hub = ‘http://localhost:3001/wd/hub’ caps = webdriver.DesiredCapabilities.IPHONE driver = webdriver.Remote(hub, caps)
None
Limitations
iframes
driver.quit()
Alert handling
Javascript
UIAutomation
“…a bit like being dropped off in a field somewhere
with no map, tools or supplies and being told you need to build a house.” -Alex Vollmer
js js Instruments.app Instruments.app App
js js Instruments.app Instruments.app App CLIENT DEVICE
UI Automation only runs in Instruments.app
Tests have to be in Javascript
No realtime interaction with tests
Hard to reuse code
One test at a time
An aside: Android automation…
Monkey Runner
So what have we LEARNED SO FAR?
Two attempted approaches to automation
Script/ Framework Script/ Framework Screen Capture Screen Capture App CLIENT
DEVICE
Hard to abstract
Very brittle
Hard to use with real devices
Hard to use with CI or parallelize
script script Client library Client library App CLIENT DEVICE
Requires code modification
Real devices are hard
New framework and new tests
The RIGHT WAY TO AUTOMATE IOS
Remember the testing pyramid
None
Are you writing unit tests for apps? It’s not that
hard!
Test your views appropriately
For UIWebViews use iWebDriver
Yes, yes, but NOW WHAT?
Code reuse is good.
Realtime interaction
Integrate with existing automation
Parallel tests and real devices
That sounds great, BUT HOW?
APPIUM
Open Source Can be extended
Uses webdriver API Runs with off-the-shelf client libraries Language agnostic
Real time Interact with js interpreter or client
Real devices
Works in parallel (architecturally)
No code modification
test script test script Instruments.app Instruments.app App CLIENT DEVICE Appium
Server Appium Server
Easy to get started
Clone Appium
pip install bottle
python server.py /path/to/my.app
from selenium import webdriver command_url = “http://localhost:4723/wd/hub” iphone = webdriver.DesiredCapabilities.IPHONE
driver = webdriver.Remote(command_url, iphone) fields = driver.find_elements_by_tag_name('textField’) fields[0].send_keys(3) fields[1].send_keys(4) buttons = driver.find_elements_by_tag_name('button’) buttons[0].click()
DEMO
Doesn’t support execute_script() …yet. More on this later.
1 Second delay between commands UI Automation limitation
Still uses UIAutomation ‘Accessibility’ is important
WHERE DO WE GO FROM HERE?
WebKit remote debugging protocol
Drive mobile safari
Drive desktop safari
Drive chrome on android!
Android RC
Questions? Thank you!
Resources Appium Github Repo: http://goo.gl/4E5F0 Dan Cuellar’s talk on Appium:
http://goo.gl/qgLha François Reynaud on ios-driver: http://goo.gl/pzn75 Simon Stewart’s blog on mobile testing: http://goo.gl/8wl8j