目次
- PDF viewerにおける制約事項について
- PDF viewerに対して可能なテスト
- Chrome 148以降の制約事項
1. PDF viewerにおける制約事項について
1-1. PDFファイルのダウンロードができない
Chrome PDF viewerでのPDFファイルのダウンロードについては、現状MagicPodでの自動化はサポートしておりません。
UIスキャンで取得したUIツリーに、PDFをダウンロードするボタンが含まれておらずUI要素の取得ができないためです。
1-2. PDFファイル内の個別の要素を指定できない
上記同様、UIスキャンで取得したUIツリーに、PDFファイル内のテキストや画像などの個別の要素に関する情報が含まれていないことから、基本的にファイル内のテキストや画像などに対してコマンドを実行することができません。
ただし、後述の画像差分チェックでビジュアルリグレッションテストを行ったり、AIアサーションでページ内容をAIに確認させたりすることは可能です。
1-3. Chrome PDF viewerのタブへの切り替えや後続の処理に失敗する
Chrome PDF viewerの拡張機能を独立したタブとして認識してしまい、タブ切り替えやその後の処理に問題が生じることがあります。
この場合、タブ切り替えの間に数秒待機する処理を入れ、問題が改善するかどうか様子を見てください。
待機コマンドで解決しない場合は「失敗時のリトライ」機能をお試しください。
それでも不安定さが継続する場合は、当社側での修正が難しい問題のため、自動テストのスコープから外すことをご検討ください。
2. PDF viewerに対して可能なテスト
2-1. 画像差分確認のテスト
PDFファイルに表示されている内容が正しいかどうかを判定したい場合、個々の要素に対して確認コマンドを使用することはできません。
その代わりに、画像差分がないか確認コマンドを使用することで、表示内容を確認することができます。
画像差分の期待値画像に対し、選択中のページ以外の箇所に除外領域を設定することによって、画像差分チェックをより安定させることが可能です。
2-2. AIアサーションによる内容確認のテスト
画像差分がないか確認コマンドによるビジュアルリグレッションテストの代わりに、AIで確認コマンドを用いてPDFファイルの内容を確認することも可能です。
例として、以下画像に表示されているページに対してAIで確認コマンドを実行した結果を添付します。
2-3. ページ全体を一画面に表示する方法
Chrome PDF Viewerでは、デフォルトの表示設定により、1ページ全体が画面内に収まらない状態で表示される場合があります。
「画像差分確認のテスト」や「AIアサーションによる内容確認のテスト」を行う際に、1ページ全体を画面内に表示したい場合は、URLの末尾に #zoom=72 のようなパラメータを追加することで、指定した縮小倍率で画面を開くことが可能です。
URLの末尾に #zoom=72 のようなパラメータを追加する方法としては、TypeScriptコードを実行コマンドを用いて、以下のように設定してください。
コードエディタ部分:
function magicpodCustomStep(args) {
const url = args.current_url;
const zoomedUrl = url.split('#')[0] + '#zoom=72';
return [zoomedUrl];
}全体のステップは次のようになります。(再読み込みコマンドを最後に実行してください。)
これにより、1ページ全体が画面内に収まるように表示できます。
2-4. 2ページ目以降を表示する方法
2~4ページ目を表示させる方法
PDF Viewerの2〜4ページ目を表示させたい場合は、PDF Viewer全体を覆う領域に対して指定位置クリックコマンドを使用し、左のサイドバーにある対象ページの座標を指定します。
またこのとき、PDF Viewer全体を覆う領域のロケータは、実行する度に値の変わるランダムなname属性の値を含んでいる可能性があります。このため、そのような値を含まないロケータ(css=embed など)を選択してください。
この方法では、左のサイドバーにあらかじめ表示されている4ページ目までを表示させることが可能です。
5ページ目以降を表示させる方法
5ページ目以降を表示する場合、キーボードキー入力コマンドを用いて下矢印キーを入力することで、次のページを表示することが可能です。
ただし、あらかじめ左側のサイドバーをフォーカスしておく必要があります。
このため、手順は以下のようになります。
まず、指定位置クリックコマンドを使用して左側のサイドバーをクリックします。
2~4ページ目を表示させる方法の手順と同様に、対象のUI要素にはPDF Viewer全体を覆う領域を指定し、左のサイドバー部分をクリックするように座標で指定します。
また上記同様、PDF Viewer全体を覆う領域のロケータは、実行する度に値の変わるランダムなname属性の値を含んでいる可能性があります。このため、そのような値を含まないロケータ(css=embed など)を選択してください。
その後、キーボードキー入力コマンドを用いて、必要回数分の下矢印キーを入力します。
下矢印キーは一度入力するごとに1ページ遷移するため、(ページ数-1)回分入力してください。
もし下矢印キーの入力回数が多い場合は、繰り返しコマンドを用いて次のように設定することも可能です。(ただし実行速度は遅くなります。)
2-5. PDF viewer画面から別画面への遷移
PDF Viewerが別のタブやウィンドウで開かれている場合は、タブ・ウィンドウを閉じるコマンドと、前のタブ・ウィンドウを選択コマンドにより、PDF viewerのタブ・ウィンドウを閉じることが可能です。
もしPDF Viewerが別のタブやウィンドウで開かれていない場合は、URL指定で遷移コマンドにて別のページへと遷移してください。
3. Chrome 148以降の制約事項
Chrome 148以降では、Chrome側の変更により、PDF Viewer上で使用されている <embed> 要素が検出できなくなりました。
この影響により、「2-4. 2ページ目以降を表示する方法」で説明している方法のうち、PDF Viewer全体を覆う領域(css=embed など)を対象として、指定位置クリックコマンドやその他の操作を実行することができなくなっています。
そのため、PDF Viewer全体を覆う領域を利用して、左側のサイドバーにある表示したいページの座標を指定したり、左側のサイドバーにフォーカスしたりする方法は利用できません。
回避策
Chrome 148以降でも、AIロケータを用いることで、PDF Viewer内に表示されているページ番号などのテキスト要素を検出することが可能です。
このため、以下の手順であれば、2ページ目以降のページを表示できます。
-
AIロケータを使用して、左側のサイドバーに表示されているページ番号をクリックし、サイドバーにフォーカスする
- キーボードキー入力コマンドで下矢印キーを必要回数分入力する
この方法を利用することで、Chrome 148以降の環境でも2ページ目以降のページを表示することが可能です。