Robot Frameworkの作業を開始し、Try Keyword If
キーワードを使用しようとしていますが、RIDEに列と行があるのに対し、オンラインで表示されるすべての例では1行でソリューションを示しています。
現在のページに「現在のステータス」というIDのボタンがある場合、URL www.xyz.comにアクセスして何らかのアクションを実行したいと考えています。混乱は、RIDEのテストケースの最初のセルにRun Keyword If
と書いた場合、2番目の列に何を書けばよいですか?これはPage Should Contain
である必要がありますか?またはPage Should Not Contain
?
上記で不足している情報を教えてください。
Run Keyword If を使用している場合、2番目の列は別のキーワードではなくpython式でなければなりません。これはキーワードのドキュメントで説明されています。 -明確にするために区切り形式):
| | Run keyword if | ${answer} == 42 | Go to | http://www.example.com
ページに「現在のステータス」のIDを持つ要素がある場合にのみキーワードを実行する場合は、最初にページに要素があるかどうかを判断し、次にそれを式で使用する必要があります。これを行うには多くの方法があります。ドキュメントは、「キーワードを実行してエラーを無視する」の使用方法を示しています。これは次のようになります。
| | ${status} | ${value}= | Run keyword and ignore error | Page should contain | //*[@id='Current Status']
| | Run Keyword if | '${status}' == 'PASS' | Go to | http://www.example.com
同じことを達成する他の方法があります。たとえば、IDを含むページ上のアイテム数のカウントを取得し、カウントがゼロより大きい場合にのみキーワードを実行できます。
| | # determine if something on the page has an id of 'Current Status'
| | ${count}= | Get matching xpath count | //*[@id='Current Status']
| | # if there is at least one item on the page with that id, go to xyz.com
| | Run keyword if | ${count} > 0 | Go to | http://www.example.com
ページに移動して検証を行うなど、複数のステップを実行する場合、最も簡単な方法は、個別のキーワードを作成してそれを呼び出すことです。
...
| | Run keyword if | ${count} > 0 | Do extra validation
*** Keywords ***
| Do extra validation
| | Go to | http://www.example.com
| | Page should contain | Hello, world
通常は3つのセクションに分かれています。
Run Keyword If || 'condition' || Keyword to run
例:
Run Keyword If '${count}'<'5' Pass Execution.
一部のキーワードの後には、次のようなメッセージが続く必要があります。
Run Keyword If '${count}'<'5' Log To Console counter is less than 5