我想使用Selenium IDE和XML有效負載對服務器執行單個HTTPS POST。我與之交互的服務不支持HTTPS GET,或者我會這樣做。 (做一個HTTPS GET真的很容易,因爲整個URL進入Selenium 打開命令。)我知道還有其他方法可以執行HTTP POST,比如使用curl,但是我的Web測試目前在Selenium IDE中完成,我不想擔心兩三種不同的工具來做我的測試。在Selenium IDE中執行HTTP POST
我看着POST submission by Javascript並修改了我在那裏找到的代碼。我把它作爲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();
當我跑的示例代碼稍加修改的版本,我在硒IDE日誌得到了一個消息,說「document.body的是不確定的」。我嘗試刪除對document.body的所有引用,希望一個簡單的表單對象本身就足夠了。事實並非如此。我得到了「form.submit不是函數」。也許有一些Javascript mojo會起作用。
我還沒有在Google或StackOverflow上找到任何有人試圖在Selenium IDE中執行HTTP POST的參考。如果做POST甚至可能,我願意寫Selenium的擴展。