1

セレンでExtjsアプリケーションをテストしていますが、スクリプトを実行してコンボボックスの値を設定する必要があります。getEvalターゲットでコマンドを試しました

var combo=Ext.getCmp('combobox name'); combo.setValue('4'); combo.fireEvent('select');

しかし、次のエラーが発生しました。 [error] Threw an exception: Ext is not defined

誰か助けてくれませんか?

4

1 に答える 1

0

jsExecutorはどうですか?

    JavascriptExecutor js = (JavascriptExecutor) driver;
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append("var combo=Ext.getCmp('combobox name');");
    stringBuilder.append("combo.setValue('4');");
    stringBuilder.append("combo.fireEvent('select');");
    js.executeScript(stringBuilder.toString());

他の例外がスローされた場合-作業中のIDEで段階的にデバッグしてみてください

テストセクションからのJavaScriptの実行もご覧ください。

JavaScriptは、Seleniumで直接サポートされていないアプリケーションを実行する場合に非常に便利です。セレンAPIのgetEvalメソッドを使用して、セレンRCからJavaScriptを実行できます。

public static String[] getAllCheckboxIds () {
             String script = "var inputId  = new Array();";// Create array in java script.
             script += "var cnt = 0;"; // Counter for check box ids.
             script += "var inputFields  = new Array();"; // Create array in java script.
             script += "inputFields = window.document.getElementsByTagName('input');"; // Collect input elements.
             script += "for(var i=0; i<inputFields.length; i++) {"; // Loop through the collected elements.
             script += "if(inputFields[i].id !=null " +
             "&& inputFields[i].id !='undefined' " +
             "&& inputFields[i].getAttribute('type') == 'checkbox') {"; // If input field is of type check box and input id is not null.
             script += "inputId[cnt]=inputFields[i].id ;" + // Save check box id to inputId array.
             "cnt++;" + // increment the counter.
             "}" + // end of if.
             "}"; // end of for.
             script += "inputId.toString();" ;// Convert array in to string.
             String[] checkboxIds = selenium.getEval(script).split(","); // Split the string.
             return checkboxIds;
 }

または別の例:

selenium.getEval("window.document.images.length;");

これがお役に立てば幸いです

于 2012-10-24T12:53:59.433 に答える