Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Robotic Fingers
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Thomas Bartelmess
April 21, 2013
Programming
0
84
Robotic Fingers
Thomas Bartelmess
April 21, 2013
Tweet
Share
Other Decks in Programming
See All in Programming
Oxlint JS plugins
kazupon
1
890
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
230
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
230
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
110
Fragmented Architectures
denyspoltorak
0
150
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
690
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
CSC307 Lecture 05
javiergs
PRO
0
500
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
210
ぼくの開発環境2026
yuzneri
0
200
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
120
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
93
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
50
Exploring anti-patterns in Rails
aemeredith
2
250
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
Are puppies a ranking factor?
jonoalderson
1
2.7k
How to build a perfect <img>
jonoalderson
1
4.9k
A Soul's Torment
seathinner
5
2.2k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
450
Code Reviewing Like a Champion
maltzj
527
40k
It's Worth the Effort
3n
188
29k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
180
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
Robotic Fingers OS X UI Automation with AXElements
`whoami` I am Thomas Bartelmess. I am from Germany and
moved to Canada a couple years ago. I work at Marketcircle. We make software for small business. Sometimes I tweet @bartelmess.
UI Testing • Simulate a user using your application •
Addition, not replacement for unit testing
Mac OS X UI Automation iOS Accessibility API JavaScript Instruments
?
AX Elements
Mac OS X UI Automation iOS Accessibility API JavaScript Ruby
Accessibility API Instruments Text Editor/Command Line AXElements
Accessiblity • API to interact with User Elements • Used
by OS X to provide tools like VoiceOver • Available on OS X and iOS
Your app must be accessible • Most things just work
• Custom views may need extra help • If your app is not accessible, it’s a good idea to do so - there are people who need it
Accessibility in 15 seconds • A simplified tree of you
view hierarchy • Every element has properties • Some of them can be modified
Inspecting Accessibility
AXElements in 45 seconds Step 1: Get the Application app
= app_with_bundle_identifier('com.apple.AddressBook') set_focus_to app
AXElements in 45 seconds Step 2: Find an element my_button
= app.button(id:'contactsPlusButton') my_textfield = app.text_field(id:'_NS:123') my_button = app.button(title:'My button title')
AXElements in 45 seconds Step 3: Do something with the
Element click my_button set my_text_field, “Hello World”
Example require 'rubygems' require 'ax_elements' app = app_with_bundle_identifier('com.apple.AddressBook') set_focus_to app
click app.button(id:'contactsPlusButton') click app.check_box(id:'_NS:480') set app.text_field(id:'_NS:367'), 'NSNorth' click app.check_box(id:'editButton')
Example
Testing • There are a lot of good ruby testing
frameworks • Rspec • Cucumber • Minitest
How do I get it $ gem install AXElements You
need Ruby 1.9 (or MacRuby)
More Information • AXElements.com • github.com/AXElements • rdoc.info/gems/AXElements/ • Apple
documentation for Accessiblity
Thanks!