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
mablの要素選択を完全理解〜壊れないテストを作るための技術選択
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Masahiko Funaki(舟木 将彦)
May 27, 2026
Programming
42
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
mablの要素選択を完全理解〜壊れないテストを作るための技術選択
2026/05/27開催のウェビナー「mablの要素選択を完全理解〜壊れないテストを作るための技術選択」のスライドです。
Masahiko Funaki(舟木 将彦)
May 27, 2026
More Decks by Masahiko Funaki(舟木 将彦)
See All by Masahiko Funaki(舟木 将彦)
202605-進化し続けるUIに追従.pdf
mfunaki
0
20
知って得するmabl活用Tips〜「こんな時どうする?」実践機能ガイド
mfunaki
0
56
20260422-mablで変わるテスト自動化_品質_速さ_コストの三角形を崩す5つのアプローチ.pdf
mfunaki
0
81
手順(プロンプト)だけで テストを自動作成~テスト作成エージェントを使いこなすための 実践プロンプト術
mfunaki
0
140
「見た目」と「意味」をAIが判定 ~ビジュアルアサーションで変わる テストの守備範囲~
mfunaki
0
66
イントラネットの社内アプリからローカル開発環境まで〜mabl Linkで実現する閉域網アプリケーションのセキュアなテスト実行
mfunaki
0
44
フルスタックQAへの第一歩。Web UIとAPIテストを統合した品質保証戦略
mfunaki
0
100
mabl新機能解説:プロンプトによるテスト生成とローカル/クラウド実行のシームレスな統合
mfunaki
0
110
mabl MCP x 生成AIによる開発・テスト自動化の未来 - コンテクスト駆動型のAI体験 -
mfunaki
1
130
Other Decks in Programming
See All in Programming
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
19
6.4k
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
340
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
480
3Dシーンの圧縮
fadis
1
690
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.5k
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
860
Vite+ Unified Toolchain for the Web
naokihaba
0
220
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
640
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.6k
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
150
スマートグラスで並列バイブコーディング
hyshu
0
120
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
sira's awesome portfolio website redesign presentation
elsirapls
0
280
How to make the Groovebox
asonas
2
2.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
A better future with KSS
kneath
240
18k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Thoughts on Productivity
jonyablonski
76
5.2k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Faster Mobile Websites
deanohume
310
31k
Transcript
mablの要素選択を完全理解 ~壊れないテストを作るための技術選択 2026年5月27日(水) 13:00~14:00 舟木 将彦 | Sales Engineer, mabl
本日のアジェンダ 1. mablのネイティブなポイント&クリック 記録するだけでAIが95%以上を自動処理 2. 検索の設定 CSSやXPathの知識不要で要素を正確に指定 3. XPath /
CSSセレクタ XPathの柔軟性とCSSのShadow DOM対応
1. mablのネイティブな ポイント&クリック まず試すべき第一の選択肢
ネイティブなポイント&クリック 1. mablのネイティブなポイント&クリック • ネイティブなポイント&クリック ◦ Mablは自動的に要素を特定し、ユーザーが手動でアプリケーションを操作するような感覚で テストを記録可能 ◦ 95%以上のケースでmablのネイティブなポイント&クリック機能が期待通りに動作する
💡 テスト記録時に mabl Trainer が要素の属性情報(テキスト、ID、クラス、role など)を多次元的に収集 。 実行時に最適な組み合わせで要素を特定する。
テストの自己修復 1. mablのネイティブなポイント&クリック • テスト実行時に要素が変わっても、mabl が自動的に修復 ✅ 失敗したステップは次回実行のために自動更新される。メンテナンスコストを大幅に削減。 シナリオ 従来ツール
mabl IDが動的に変わった ❌ 失敗 ✅ 他の属性で特定 クラス名が変更された ❌ 失敗 ✅ テキストや位置で特定 DOM構造が微修正 ❌ 失敗 ✅ 相対的な関係で特定
🔍 デモ:自動修復の仕組みを体験する 1. mablのネイティブなポイント&クリック • デモサイトで、Auto Healingの3つのフェーズを体験します フェーズ 内容 ①
識別プロパティ mabl がテスト記録時に学習する 11種類の属性を確認 ② スコアリング 要素の変化に対してどの候補が選ばれるかを可視化 ③ 自動修復判定 スコアが閾値を超えた場合に自動修復が発動するかを確認
ビジュアル検索:視覚的要素の特定 1. mablのネイティブなポイント&クリック • クリックステップで画像・地図・ Canvasなどのテキスト情報のない要素に対応 ◦ AIが要素の視覚的な説明を自動生成して保存 ◦ 実行時にDOM属性だけでは特定できない場合、
視覚的説明にフォールバック ◦ 地図・画像・Canvasなど、HTML属性が乏しい要素に特に有効 設定方法: ステップの挿入のクリックから「ビジュアル検索」を選択 デフォルトは英語で生成。 ワークスペース > ワークスペース で言語を変更可能
2. 検索の設定 CSS/XPathの知識不要で要素を正確に指定する
検索の設定 2. 検索の設定 • 検索の設定 ◦ ネイティブなポイント&クリックで要素の特定が一貫しない場合に利用 ◦ 特定の属性(例:id, class,
name など)を指定することで、 mabl が要素を正確に識別するための追加の手がかりを与える ◦ CSSやXPathの知識が不要 なため、テストのメンテナンスが容易になる ✅ カスタム検索(CSS/XPath)より先に検索の設定を試すことを強く推奨。 トラブルシュート時もコードの知識なしで対応できる。
安定した属性の選び方 2. 検索の設定 • 検索の設定に指定すべき属性(安定性が高い順) ⚠ 動的なクラス名(例:MuiButton-root-:r3:)や揮発性IDは使用を避ける 優先度 属性の種類 例
★★★ カスタムテストID data-testid, data-qa, data-cy ★★★ アクセシビリティ属性 aria-label, role, aria-labelledby ★★ 安定した属性 name, title, placeholder, innerText ★ 動的な属性 id(動的生成), class(フレームワーク生成)
検索の設定の高度な設定 2. 検索の設定 • タイムアウト設定 ◦ デフォルト:15秒 / 最大:15分(900秒)まで延長可能 ◦
静的Waitより効率的(要素が見つかり次第すぐ次のステップへ進む) • 自動修復オプション(ブラウザテスト) ◦ タイムアウト後、一致する要素が見つからない場合: ▪ 自動修復を無効にする(デフォルト) :ステップ失敗 ▪ 自動修復:検索パラメーターを拡張して最も近い候補を選択 • 変数の活用 ◦ 属性値にmablの変数を使用可能:{{@varname}} ◦ 例:新しいタブのURLに {{@productId}} が含まれるまで待機
祖先要素(コンテナ)でスコープを絞る 2. 検索の設定 • ターゲット要素自体に安定した属性がない場合、親要素でスコープを制限 • ユースケース:繰り返し UIのn番目の要素を特定したい ❌ 特定困難:削除ボタン(SVGアイコン、属性なし)
↓ 祖先要素を使ってスコープを制限 ✅ 解決策:data-test-id="delete-button" を持つ 親 div の中にある SVG を対象にする ✅ 繰り返しのテーブル行、モーダル、フォームなど繰り返し構造 のUIで特に有効
アプリケーションレベルのカスタムテストID 2. 検索の設定 • 開発チームが独自のテスト属性規則を使っている場合、 mabl 側で優先属性として登録できる • テスト環境設定 >
アプリケーション でアプリケーションを編集✎ → 詳細セクション 登録可能な属性例 : data-qaid data-cy formcontrolname data-testid (1アプリにつき最大3属性まで登録可能) 登録済みの属性が要素に存在する場合、mabl はその値を要素特定の最優先識別子 として使用する。 既存テストへの反映は再トレーニングが必要。
3. XPath / CSSセレクタ 検索の設定で対応できない場合の手段
XPath / CSSセレクタ 3. XPath / CSSセレクタ • XPath /
CSSセレクタ ◦ 要素の設定でも十分な結果が得られない場合に利用 • 使うべき典型的なシーン ◦ ある要素に隣接する別の要素を基準にしてターゲットを特定する場合 ◦ 特定のテキストを含まない要素を特定する場合 例: //button[not(starts-with(text(),"Submit"))] ◦ 頻繁に変化する類似要素の集合の中のn番目を特定する場合 ◦ 一致する要素の個数を検証したい場合
XPathの特徴 3. XPath / CSSセレクタ • XPathの特徴 ◦ より柔軟:DOMを上下に移動可能(子要素から親要素へ) ◦
テキストによって要素を検索可能 ◦ 構文は複雑になる傾向がある ◦ 速度はCSSセレクタより遅い場合がある
CSSセレクタの特徴 3. XPath / CSSセレクタ • CSSセレクタの特徴 ◦ 記述が容易で理解しやすい構文 ◦
一般的にXPathよりも高速 ◦ Shadow DOMの要素を操作可能 ◦ DOMを上方向には移動できない(順方向のみ) Shadow DOM内の要素を操作できるのは CSSセレクタのみ 。 XPath では Shadow DOM 内部の要素には到達できない。
XPath / CSSセレクタ比較 3. XPath / CSSセレクタ 基本はCSS、テキスト検索や親要素参照が必要なときはXPath 特性 XPath
CSSセレクタ テキストで要素を検索 ✅ 可能 ❌ 不可 子要素から親要素を参照 ✅ 可能(上下移動) ❌ 不可(順方向のみ) Shadow DOM対応 ❌ 不可 ✅ 対応 構文の習得しやすさ ⚠ 複雑 ✅ 容易 実行速度 ⚠ やや遅い ✅ 速い
XPath / CSSセレクタ:ベストプラクティス 3. XPath / CSSセレクタ • 相対XPathを使用 ◦
絶対XPathは避ける。 テキスト、ID、または一意の属性を基準にして、相対XPathで指定する。 ◦ 可能であれば、開発者にテスト専用の属性(data-testid など)を 追加してもらうようアドバイスする。 ⚠ Chrome DevToolsの「セレクタをコピー」は使わない! DevToolsが自動生成するセレクタは具体的すぎるため、アプリの軽微な変更でも簡単に壊れる。
カスタム検索の制限事項 3. XPath / CSSセレクタ • CSS / XPath によるカスタム検索ステップは、通常の記録ステップと比べて、
以下の機能が使えない。 カスタム検索は最終手段。使う場合はメンテナンスコストが高くなることを念頭に。 機能 記録ステップ 検索の設定 カスタム検索 自動修復 ✅ ✅(オプション) ❌ なし インテリジェント待機 ✅ ✅ ❌ なし ダウンロードアサーション ✅ ✅ ❌ なし
4. まとめ
まとめ 4. まとめ mabl での要素操作は、次の順序に従うことが「効率的 かつ 堅牢」なテスト構築の鍵 • ポイント&クリック -
95%はこれでカバー ◦ ビジュアル検索で画像・Canvas にも対応。 • 検索の設定 ◦ CSS/XPathの知識不要。タイムアウト・変数・祖先要素で柔軟に対応。 • XPath / CSS セレクタ ◦ XPathは柔軟性(DOMの上下移動、テキスト検索)が高い。 ◦ CSSセレクタはShadow DOM要素の操作に不可欠。