Find.By-ロケーターの検索と検証

私はこの記事を、私がQA Automationgで働いており、すべての日常的な活動を自動化したいという事実から始めます。 それで最近、私にとって、ページ上の要素へのロケーターの作成、編集、およびチェックがそのようになりました。



通常、このプロセスは次のようになります。xpath式をchromeまたはfirepathで作成し、それをコピーして、C#コードの要素に属性を追加します。 ただし、ロケーターを修正するか、単にロケーターが指す要素を確認する必要があります。 そして、 [@ id = 'myId']のような述語を[contains(@id = 'Id')]に変更するだけでも、実行時にテストクラッシュで終了します。 一般に、このような単純なタスクには、コピー、貼り付け、ウィンドウ間の切り替えなどのアクションが多すぎます。 ReSharper用のプラグインを作成することにしました。これにより、Alt + Enterでブラウザーの要素が強調表示されます。



問題の声明



ReSharperとChromeのプラグインを作成します。これらのプラグインを使用すると、2つの簡単なタスクを解決できます。



解決策



最初のタスクでは、すべてが非常に単純であることが判明しました。 私はxpathのパーサーとバリデーターを作成せず、単に.NETライブラリのXmlDocumentクラスを使用することにしました。



XmlDocument document = new XmlDocument(); var navigator = document.CreateNavigator(); try { navigator.Compile("xpath expression"); //   ,    } catch (XPathException exception) { //   }
      
      





質問の2番目の部分は、次のように実装されました。



XPathを使用してdomの要素を検索するには、 jquery.xpath.jsライブラリを使用します。



以前にchromeのプラグインを書いたことがないので、私にとって最も難しいことはhttpsサイトからhttp localhostにリクエストを送信することでした。 Google Chromeは、Webページからのそのようなリクエストをすべてブロックします。 解決策を見つけるのに少し時間がかかりましたが、非常にシンプルで、おそらく論理的でさえあることが判明しました:background.jsからhttpリクエストを作成し、その結果をページに転送することができました。



アクション中のプラグイン操作







参照資料



ReSharperの最も簡単なプラグインを作成しています-ReSharperの作成を開始した記事です

Find.By Chrome-Google Chromeのプラグイン

Find.By resharper -ReSharperのプラグイン

Find.By -githubプロジェクトリポジトリ



All Articles