1

robotframework と selenium2library を使用して extjs ベースの Web アプリケーションをテストしていますが、テーブル コンポーネントに含まれるいくつかの要素を見つけることができません。selenium2library には Execute javascript というキーワードがあるため、javascript を実行する方法を知りたいです。たとえば、js コードを実行する方法は次のとおりです。

var a=document.getElementById('ext-comp-1155').getElementsByTagName("button");
a[0].click();

extjs ベースの Web ページの自動テストで成功した経験のある人はいますか? どんな助けでも大歓迎です。

4

2 に答える 2

1

このようにJavaScriptを実行できるはずです

  Execute Javascript var a=document.getElementById('ext-comp-1155').getElementsByTagName("button"); a[0].click(); 

つまり、javascript には複数のステートメントがありますが、セミコロンが配置されている限り、単一の引数でそれらを指定できます。

これは、次のようにもう少し読みやすくすることができます。

 ${button clicker}=  document.getElementById('ext-comp-1155').getElementsByTagName("button")[0].click() 
 Execute Javascript  ${button clicker} 
于 2012-03-08T18:26:06.973 に答える
0

Selenium に限定されていない場合は、RIATestを参照してください。

バージョン 5.0 は ExtJS テストを完全にサポートします。ExtJS UI ウィジェットは、RIATest の第一級市民です。これは、他の HTML テスト ツールとは異なり、HTML DOM 要素を操作するテストを記述する必要がないことを意味します。RIATest のテストは、ExtJS UI ウィジェットの観点から動作します。

ExtJS ウィジェットで動作する RIATest スクリプトの例:

次の例では、「次のページ」というラベルが付いた ExtJS ボタンをクリックします。

ExtButton("Next Page")=>click();

次の例では、ある ExtJS ツリーから別の ExtJS ツリーに行をドラッグ アンド ドロップします。

ExtRow("Controller.js")=>dragAndDropTo(ExtTreePanel("#tree2")->ExtRow("Custom Ext JS"));

そして、これは ExtJS ボックスのヘッダーを折りたたみます:

ExtBox("Feeds")->ExtHeader("FeedsВ")->ExtCollapser()=>click();

(上記のサンプル コードはすべて、ExtJS サンプル アプリケーションで実行される実際のテスト スクリプトからのものです)。

RIATest は、ExtJS AJAX が終了するまで自動的に待機するタイミングも認識しているため、UI が動的コンテンツのダウンロードを行う場合、サーバーからデータが受信されるまで、テストは魔法のように自動的に待機します。

(免責事項: 私は RIATest チームのメンバーです)。

于 2012-09-12T13:54:58.703 に答える