WebdriverのJavaScriptをクリックする問題!


「JavaScriptを使用してその要素をクリックしてください」ということで、ElementNointerActTableのような問題を回避することができます.いくつかのオートメーションエンジニア- 2020.
私はこれを何度も聞いたことがあり、正直に言うと、それが唯一の方法は、そのクリック作業をすることですエッジケースです.しかし、私は個人的には、最新のソースとして、このアプローチを使用しようとする理由です.

ストーリー


私は今日、顧客からメッセージを得ました:「ヘイマーケティングは、ページで新しい構成要素を保存することができません、彼らは、保存ボタンがないと言っています」.
それで、私は自動化されたテストをチェックするために私の電子メールを開けました、そして、彼らはすべて渡されました.100 %の成功.この時点で、私はそれがシステム上で最も可能性が高いと考え始めた.それで、手動でテストを始め、save iconが本当になくなっていることがわかりました.

しかし、..どのように、私のテストはこの問題を見つけませんでしたか?これはすべてのテストが通過する流れです.そして、それは私が何百もの失敗をしなければならなかったことを意味します.
それで、私はコードを開けました、そして..すぐに問題が見つかりました.
...
seleniumHelper.clickElementJavaScriptExecutor(checkIcon);
...
   public void clickElementJavaScriptExecutor(WebElement element){
        ((JavascriptExecutor)driver).executeScript("arguments[0].click();", element);
    }
...
これは、バグが100 %テストケースの証明である場合、または異なる単語で、私は役に立たないテストをした.

解説


この場合、要素はページに存在します.

しかし、それは隠されていて、普通の顧客のために、そして、何も意味しないJavascriptのために見えませんでした.スクリプトは単にクリックイベントBINDをトリガーして、要素が存在する限り移動します.
そして、それはエラーなしで自動化された流れを完了させました、テストケースは本当の顧客問題を決して露出しませんでした.JavaScriptをクリックして通常のクリックを変更した後、すべてのテストが予想通り失敗しました.
checkIcon.click();
WebDriver error. Failed Authoring: Component: phonenumberFailure Reason: org.openqa.selenium.ElementNotInteractableException: element not interactable .

エンドノート


スクリプトのすべての単一の動作が妥当性検査として振る舞うことを忘れないでください.をクリックして、入力、選択..これらのいずれかの場合は、自分の問題は、ウェブサイトでは、これはあなたのテストは、より信頼性の高い偽陽性を避けるために役立つ継続的なアプローチです.(私の話のように).
したがって、JavaScriptを使用して要素をクリックすることは時々良いアイデアです.たとえば、通常のWebDriverのクリックが動作していない場合や、コンポーネントを配置してクリック領域が非常に小さい特定のUIがあります.
しかし、我々はそれを回避しようとする必要があります、それが本当のユーザーフローではない原因.
コメント?
チアーズ:)とWebDriverを使用し続けることを忘れないでください
https://pjcalvo.github.com
あなたがポストが好きならば: