web-dev-qa-db-ja.com

ロボットフレームワークで「キーワードを実行」の使用方法

Robot Frameworkの作業を開始し、Try Keyword Ifキーワードを使用しようとしていますが、RIDEに列と行があるのに対し、オンラインで表示されるすべての例では1行でソリューションを示しています。

現在のページに「現在のステータス」というIDのボタンがある場合、URL www.xyz.comにアクセスして何らかのアクションを実行したいと考えています。混乱は、RIDEのテストケースの最初のセルにRun Keyword Ifと書いた場合、2番目の列に何を書けばよいですか?これはPage Should Containである必要がありますか?またはPage Should Not Contain

上記で不足している情報を教えてください。

5
roger referabal

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
12
Bryan Oakley

通常は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
3
Roni