こんにちは、Heywaです。
前回の記事では、Vibiumのインストールや環境構築周りのエラーについて解説しました。今回は、実際にスクリプトを動かし始めた後に直面する「要素取得エラー」や「タイムアウト」などの実行時トラブルシューティングについてまとめます。
SeleniumからVibiumに移行した人が最初につまずくポイントを網羅していますので、ぜひ参考にしてください。
Vibium 要素取得 エラーの代表例
Vibiumで最も多いのが、画面上のボタンやテキストボックスが見つからない(操作できない)というエラーです。
1. 要素が見つからない(Element Not Found)
【症状】
vibe.find(".submit-btn").click() を実行すると、要素が見つからずにエラーで落ちる。
【原因と対策】
Seleniumの NoSuchElementException に相当するエラーです。原因の9割は「画面の描画が完了する前に要素を探しに行っている」ことです。
Vibiumには、Seleniumの WebDriverWait に似た待機機能が備わっています。明示的に待機を入れるか、要素が表示されるまでリトライするロジックを組み込みましょう。
2. Vibium Auto-wait timeout(自動待機タイムアウト)
【症状】
Auto-wait timeout of 30000ms exceeded というエラーが出る。
【原因と対策】
Vibiumはデフォルトで、要素がクリック可能(Clickable)になるまで自動的に待機(Auto-wait)してくれます。しかし、重いSPA(Single Page Application)やアニメーションが長いサイトでは、デフォルトの30秒を超えてしまうことがあります。
対策として、特定の重い処理の前だけタイムアウト時間を延ばすか、ネットワークの通信が落ち着くまで待つ処理(networkidle相当)を入れます。
// タイムアウトを60秒に延長する例(※VibiumのAPI仕様に合わせた書き方)
vibe.find(".heavy-load-btn", { timeout: 60000 }).click();
Vibium 自己修復(Self-Healing)機能への期待と現状
Vibiumの最大の目玉として語られるのが、AIを活用した「自己修復(Self-Healing)」機能です。
【現状の課題】
「サイトのUI(クラス名やID)が変わっても、AIが自動で新しい要素を見つけてクリックしてくれる」という魔法のような機能ですが、実はこれはV2ロードマップの機能であり、現在のV1では完全には実装されていません。
そのため、現時点で「自己修復が動かない!」というエラー(というか勘違い)に悩む人が多いです。
【Claude Codeを使った疑似的な自己修復】
V2を待たずとも、Claude CodeとVibiumを連携させることで、疑似的な自己修復を実現できます。
Claude Codeに以下のようなプロンプト(指示)を与えて実行させます。
「Vibiumで ‘.login-button’ をクリックして。もし要素が見つからなかったら、画面内のボタン要素をすべて取得し、テキストが『ログイン』または『Sign In』となっているものを探してクリックして。」
このように、AIエージェント側に「エラー時のフォールバック(代替手段)」を考えさせることで、スクリプトが途中で止まるのを防ぐことができます。
まとめ:Vibiumトラブルシューティングのコツ
Vibiumの実行時エラーを減らすためのベストプラクティスは以下の3点です。
- Auto-waitを過信せず、重い処理には明示的なタイムアウト延長を設定する
- Claude Codeと連携し、エラー発生時の「代替ルート」をAIに推論させる
- V2の「自然言語ロケーター」や「完全な自己修復」のリリースを待つ(現在は過渡期)
Vibiumはまだ発展途上のツールですが、AIエージェントと組み合わせた時のポテンシャルはSeleniumを遥かに凌ぎます。エラーと上手く付き合いながら、次世代のブラウザ自動化を楽しんでいきましょう!
