iOSのテスト対象で扱う要素の文字列に改行が含まれている場合、MagicPodがベースとしているフレームワークAppiumの制限により改行文字と半角スペース文字が混同されてしまう場合があります。原則としてMagicPodでは改行は改行、スペースはスペースとして扱うようにしていますが、いくつか例外的なケースがあります。
要素の特定に「xpath」もしくは「-ios class chain」を用いている場合
改行を含む文字列に対して、スペースを使っても要素の検索や値の確認ができるケースがあります。
要素内の改行 | 改行を含むロケータで検索 | 検索、値の確認ともに改行を含む文字列を使用 | スペースを含むロケータで検索 | 検索、値の確認ともにスペースを含む文字列を使用 | 要素の値を変数に格納 |
---|---|---|---|---|---|
あり (Magic\nPod) |
成功 | 成功 | ※1 | ※1 | 「Magic\nPod」として格納 |
なし (Magic Pod) |
失敗 | 失敗 | 成功 | 成功 | 「Magic Pod」として格納 |
改行を含む要素をスペースを使って検索した場合
上の表中で「※1」となっている箇所については、お使いの環境(詳細は後述)によって動作が異なる場合があります。これには、Appiumの挙動に何度か後方互換性を伴わない変更が入ったことが関係しています。かなり以前(2020年頃)は改行を含むロケータが全く動作しなかったため、一部のお客様には代わりにロケータを手で書き換えてスペースを使うことをお勧めしていたことがあります。その後しばらくは改行とスペースを併用可能な状態が続いていましたが、2025年に追加された変更で今度はスペースを含むロケータが動作しなくなりました。
以前手動で書き換えたスペース入りのロケータをお使いの場合は、一括実行をされていれば基本的に改行入りのロケータへと自動修復が行われます。問題がなければ、自動修復結果を承認して引き続き改行入りのロケータをご利用ください。その際、もしUI要素の値を確認している箇所があれば、スペースから改行へ期待値を入れ替える必要があります。
環境による動作の違い
改行を含む要素をスペース入りのロケータで検索した場合の動作の違いを環境ごとに整理したのが以下の表です。MagicPodDesktopのバージョンによる差異は原則的に変化しませんが、外部クラウドサービスをお使いの場合の挙動はMagicPodのリリースによって変わる可能性があります。動作が気になった際は、このページで最新の情報をご確認ください。
環境 | スペース入りのロケータの動作可否 |
---|---|
ローカルPC(MagicPodDesktop 1.37.0以前) | 成功 |
ローカルPC(MagicPodDesktop 1.38.0以降) | 失敗もしくは自動修復 |
外部クラウドサービス(BrowserStack) | 失敗もしくは自動修復 |
外部クラウドサービス(SauceLabs) |
成功 |
外部クラウドサービス(Remote TestKit) |
失敗もしくは自動修復 |