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
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
130
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
720
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
690
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
4
400
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
120
Grafana:建立系統全知視角的捷徑
blueswen
0
330
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.4k
AI時代の認知負荷との向き合い方
optfit
0
160
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.4k
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
CSC307 Lecture 04
javiergs
PRO
0
660
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
141
7.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Speed Design
sergeychernyshev
33
1.5k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
160
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
WENDY [Excerpt]
tessaabrams
9
36k
How to build a perfect <img>
jonoalderson
1
4.9k
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!