4

Selenium IDE と XML ペイロードを使用して、サーバーに対して単一の HTTPS POST を実行したいと考えています。私がやり取りしているサービスは、HTTPS GET をサポートしていないか、そのようにします。(URL全体がSelenium openコマンドに入るため、HTTPS GETを実行するのは非常に簡単です。)curlなどのHTTP POSTを実行する方法が他にもあることは知っていますが、私のWebテストは現在Selenium IDEで行われており、そうではありませんテストを行うために 2 つまたは 3 つの異なるツールについて心配する必要があります。

Javascript による POST 送信を調べ、そこで見つけたコードを修正しました。Selenium IDEのstoreEvalコマンドとして入れました。コードの最終バージョンは次のとおりです。

var method = method || "post"; 
var path = "https://service.url.srv/";
var post = "<xml>payload</xml>";    
var form = document.createElement("form");    
form.setAttribute("method", method);    
form.setAttribute("action", path); 
var hiddenField = document.createElement("input"); 
hiddenField.setAttribute("type", "hidden"); 
hiddenField.setAttribute("name", ""); 
hiddenField.setAttribute("value", post); 
form.appendChild(hiddenField); form.submit();

サンプル コードのわずかに変更されたバージョンを実行すると、Selenium IDE ログに「document.body is undefined」というメッセージが表示されました。単純なフォーム オブジェクトだけで十分であることを期待して、document.body へのすべての参照を削除しようとしました。そうではありませんでした。「form.submit は関数ではありません」というメッセージが表示されました。おそらく、動作するJavascriptのモジョがいくつかあります。

誰かがSelenium IDEでHTTP POSTを実行しようとしているGoogleまたはStackOverflowに関する参照は見つかりませんでした。POST が可能であれば、Selenium の拡張機能を書きたいと思っています。

4

3 に答える 3

0

私が知る限り、Selenium IDE を介して HTTP POST を実行する方法はなく、意図しないことを強制しようとしていたと思います。代わりに、JUnit と WebDriver を使用して POST を実行します。

于 2012-08-23T12:36:03.313 に答える