0

アプリケーションで 5 つのボタンをクリックするユース ケースを自動化する ranorex プロジェクトがあります。このプロジェクトを設定するには、記録機能を使用しました。クリックの間にいくつかのスリープ時間を定義しました。クリックを伴う実行はループ内にあり、ループ カウントは動的に定義されます。5 つのボタンのうちの 1 つと、常に同じボタンである Ranorex は、「無視」することがあります。ログ ファイルによると、ボタンは表示されて有効になっており、ranorex も Click() を使用してコードを実行しますが、アプリケーションはクリックを受け取りません。コードでクリックが呼び出される前に、ボタンが表示されて有効になっているかどうかを「If」で確認します。click() が呼び出された (または呼び出されていない) 場合は、ranorexlog に記録します。アプリケーションが実行されていて、すべてのクリックが機能することもあれば、このボタンのクリックが 1 回以上失われることもあります。長い休止時間と短い休止時間を試したので、クリック間のスリープ時間には依存しません。何度かフォーカスを切り替えたので、アプリケーションのフォーカスにも依存しません。

誰かがこの問題、回避策、または私が間違っていることを知っていますか?

4

1 に答える 1

0

明らかな回避策は、クリック イベントを呼び出すのではなく、期間を 0 にして Mouse.Click("{Button}") を使用することです。または、マウス クリックを呼び出している場合は、ボタンのクリック アクションを呼び出します。(両方とも Click() という名前なので、どちらを使用しているかわかりません)。

何が起こっているかについては、あなたの説明から、スクリプトが同じ xpath を持つ複数の要素を見つけているようです。これにより、要素をクリックしようとする可能性があるため、クリック イベントで問題が発生しますが、一致するのは最初の xpath であり、2 番目の xpath ではありません。この一連のボタン クリックで表示されるオプション要素はありますか? たとえば、「OK」の内部テキストを持つフォームのボタンをクリックすると、ビューから隠される「OK」の内部テキストを持つビジー スピナーは、xpath がわかった。原因となっているこの要素は、その時点で存在していなかった可能性があるため、レコーダーに捕捉されていない可能性があります。

Mouse.Click() を使用している場合 (特にこれが Web サイトの場合) の別の可能性は、ボタンが実際には画面上にない可能性があることです。可視チェックで処理する必要があることはわかっていますが、問題を引き起こす画面に表示されていなくても、dom。

再実行が必要なテスト スイートを作成するためにレコーダーを使用しないことを強くお勧めします。実際には、spy ツールを使用して、テストしている製品用に 1 つまたは複数のリポジトリを作成することをお勧めします。これにより、xpath がすべて一意であることを確認できます。レコーダーを使用すると、保証はありません。作成されたリポジトリで実際に記録できます。ranorex は、新しいアイテムを作成する前にリポジトリ内のアイテムを検索しようとするため、レコーダーは記録を作成するときにこのリポジトリを使用します。

于 2014-09-04T20:17:00.747 に答える