Documentation Index

Fetch the complete documentation index at: https://helpcenter.autify.com/llms.txt

Use this file to discover all available pages before exploring further.

strict mode violation エラーの原因と対処法

Prev Next

本記事では、テスト実行時に「strict mode violation」エラーが発生した場合の原因と解決手順について説明します。

概要

Autify Nexusでテストを実行した際、ステップが失敗し、エラー詳細に以下のようなメッセージが表示されることがあります。

strict mode violation: getByText('要素名', { exact: true }) resolved to 2 elements

原因

このエラーは、操作対象として指定したロケーター(要素を見つけるための条件)が、画面上の 複数の要素に一致してしまった ことを意味します。
意図しない要素への誤操作を防ぐための仕様(strict mode)により、1つの要素に特定できない場合はエラーとして扱われます。

主な発生条件

  • 画面内に同じテキストを持つ要素が複数存在する(例:表の見出しと行データ、同名のメニュー項目など)

  • 前回のテスト実行が途中で失敗し、作成されたデータが削除されないまま画面に残っている

解決手順

エラーを解消するには、以下のいずれかの方法で対応します。

対処法1:テスト環境のデータをクリーンアップする

前回のテストで作成したデータが残っていることが原因の場合は、環境を整理します。

  1. テスト対象の画面を開き、対象データが重複して表示されていないか目視で確認します。

  2. 重複している場合は、手動でデータを削除してからテストを再実行します。

  3. 今後の対策として、シナリオの冒頭に「対象データが残っていたら削除する」という前処理のステップを追加することをおすすめします。

対処法2:より一意なロケーターに変更する(通常のステップの場合)

同じテキストを持つ要素が複数存在しうる画面では、テキストだけに依存しない一意なロケーターに変更します。

  1. シナリオ編集画面で、エラーが発生した対象ステップを開きます。

  2. 詳細設定を開き、ロケーターの変更 をクリックします。

  3. ロケーター フィールドに、新しいロケーターを入力します。

  4. 完了 をクリックして保存します。

対処法3:コード側で一意化する(「Playwrightコード」ステップの場合)

getByTextgetByRoleなどが複数一致する可能性がある場合、コードを修正して要素を1件に特定します。

  • 親要素やコンテナで絞り込む

  • filter({ hasText: '...' }) を使用して絞り込む

  • getByTestIdなどの安定した属性を活用する

解決しない場合

上記の手順を試してもエラーが解消しない場合は、サポート窓口までお問い合わせください。