3

私のテストは失敗しています:

WebDriverException: メッセージ: 不明なエラー: 要素はポイント (1 786、183) でクリックできません。他の要素がクリックを受け取ります: <'div align="right">...</'/div>

私がアクセスするxpathは次のとおりです。

${UPDATE}    xpath=//button[@type='submit' and contains(text(),'Update')]

キーワードで使用:

    wait until element is visible   ${UPDATE}
    click element    ${UPDATE}

ソース:

<div align="right">
    <button type="submit" class="btn btn-primary ng-binding" ng-click="submitForm()" ng-disabled="updateDisabled">Update</button>
    <button type="button" class="btn btn-primary" ng-click="reset(projectForm)" ng-disabled="updateDisabled">Reset</button>
</div>

しかし、テストではボタンが実際にクリックされた-> データが保存されたので、問題ありません。正しくクリックしたときに例外がスローされる理由と、それを通過させるために何ができるかがわかりません..要素を見つけてクリックしたことは明らかです...また、「待機するまで」を使用しようとしました要素が有効になっています」と「フォーカス」...ご提案ありがとうございます! PS: 例外として div 要素に文字 "'" を追加しました。そうしないと、ここには表示されませんでした..:)

4

5 に答える 5

0

リチャードの答えは非常に役に立ちましたが、すべての人に直接当てはまるとは限りませんでした。ユースケースに合わせてカスタマイズする必要がありました-

Wait Until Keyword Succeeds      5x     10s      Click Element   XPATH://<add xpath>

これにより、失敗の合間に 10 秒の間隔を置いてテストが 5 回実行されるため、コードで明示的なスリープを行う必要が完全になくなります。どちらの値も、必要に応じて変更できます。キーワードは、テスト ケースのすべての行をこれを使用するように変更すると、Web サイトの応答時間の変動に関係なく、テストが合格することを保証できることをWait Until Keyword Succeeds含む、任意の操作と一緒に使用できることに注意してください。Input Text

于 2020-07-03T12:53:46.850 に答える