Outline
帳票出力したりするサービスでは、PDFがよく用いられる。
そのPDFをT-DASHにて検証したい。
尚、T-DASHでPDFを検証するには以下のような条件がある
- PDFをローカルにダウンロードできる
- PDFに含まれる文字列を文字として認識できる(範囲指定して文字をとれるかどうか)
- 検証できるのは文字列のみである(表示イメージを検証したい場合は、画像比較でおこなってください)
技術的な情報
RPA.PDF のライブラリを使用します。
robotframeworkの命令はシンプルで、以下のkeywordsを用いる。
${text} = Get Text From PDF $PDF_FILE_PATH
これで得られる結果は、json形式になります。
例えば、以下のような3ページのpdfの場合
${text} は、以下のようなjsonが得られます。
{1: 'T-DASHManual', 2: 'How to use PDF by robot framework• pip install rpaframework-pdf\n• Keywords Get Text From PDF', 3: 'Thanks'}
この場合、情報が多いため、ページを指定することができます。
${text[2]} : このように [] を用いてページ番号を指定すると、指定したテキストを取得することができます。
How to use PDF by robot framework• pip install rpaframework-pdf• Keywords Get Text From PDF
T-DASHの手順
カスタム動作
以下設定内容を PDF.yamlのファイル名で保存する
ACT-CAT-CUSTOM-64f80d83-a7c0-4f8f-8a61-da2485109d1a:
action_category_name: PDF
icon: ''
color: '#fa1b86'
custom_data:
file_name: PDF
pip_list:
- rpaframework-pdf
library_list: []
actions:
ACT-CUSTOM-2c53fffe-8cb1-421e-80f2-3f9ce3920c9e:
action_name: PDFの文字列抽出
action_type: operation
action_format: パス「設定値1」のPDFを読み出し、「設定値2」ページの文字列を変数「設定値3」に入れる
action_note: ''
action_args:
- value1
- value2
- value3
action_def:
- - '${text} = '
- Get Text From PDF
- ${value1}
- - Log
- ${text[${value2}]}
- - Set Suite Variable
- ${${value3}}
- ${text[${value2}]}
次に、作成された PDF.yamlをT-DASHの動作定義 -> カスタム動作 -> カスタム動作をインポート にてインポートする
ライブラリを追加をクリックし、ライブラリの情報を確認する。
今回、MySQLを使うため、"pip install rpaframework-pdf" となっています。
カスタム動作の説明になります
この動作を呼び出すの引数の説明です
引数 | 説明 |
---|---|
設定値1 | PDFのパスを設定します |
設定値2 | PDFの読み出したいページ番号を指定します |
設定値3 | 読み出した情報を入力する変数名を指定します |
スクリプト
今回のテストステップは、単純にローカルにあるPDFを読み出し、2ページ目の情報を変数 ${pdf_string} に代入するものとします。
後続の処理で、変数 ${pdf_string}を用いて文字列検証などに使ってください。
テスト実行結果
詳細ログを確認していただくとわかるように、PDF2ページ目の文字列情報が変数${pdf_string} に代入されていることが確認できると思います。