Sie eine POST-Anfrage an Selen, ohne ausfüllen eines Formulars?
Habe ich einen Antrag Ein, der soll ein Formular Absenden gemacht, mit der POST-Methode. Die tatsächliche form, dass die Anfrage auslöst, ist völlig separate Anwendung B. ich bin Eine Test-Bewerbung mit Selen, und ich Schreibe gerne einen test-Fall für das Formular Absenden Handhabung.
Wie dies zu tun? Kann das getan werden, in Selen überhaupt? Anwendung nicht über eine form, initiieren kann diese Anforderung.
Beachten Sie, dass die Anfrage muss, verwenden Sie den POST, sonst würde ich nur verwenden, WebDriver.get(url) - Methode.
- Warum nicht Sie füllen das Formular aus mit Selen und senden Sie das Formular und stellen Sie die richtigen Daten bei Ausführung abgeschlossen. Jedoch, wenn die Anwendung B down ist, wird dieser test immer fehlschlagen-in anderen Worten, ich glaube, Sie brauchen, zu verspotten diese Interaktion.
- Ich will nicht, dass jeder Zugriff auf die Anwendung B, wo die form sein wird.
- es scheint der einzige Weg das zu tun ist, zu verspotten, das Formular innerhalb der Anwendung, die Sie Zugriff haben, da sonst das Selen nicht machen am meisten Sinn in diesem Zusammenhang.
- Ich denke Formular Spott ist der beste Weg zu gehen. Sie können sogar erstellen Sie das Formular dynamisch mit JavaScript
- Duplikat von stackoverflow.com/questions/5660956/... ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit Selen kann man das ausführen von beliebigem Javascript-einschließlich programmgesteuert ein Formular Absenden.
Einfachste JS Ausführung mit Selenium-Java:
und mit Javascript erstellen Sie eine POST-Anforderung, legen Sie die erforderlichen Parameter und HTTP-Header, und senden Sie es ab.
Wenn Sie brauchen, um pass über Selen die Antwort der text dann statt
alert(this.responseText)
verwendenreturn this.responseText
und weisen Sie das Ergebnis der executeScript() um eine java-variable.Hier ist ein vollständiges Beispiel für python:
Ich glaube nicht, dass das möglich Selen. Gibt es nicht einen Weg, um erstellen Sie eine POST-Anforderung aus dem nichts über einen web-browser, und Selen funktioniert durch die Manipulation von web-Browsern. Ich würde vorschlagen, Sie verwenden einen HTTP-Bibliothek zum senden der POST-Anforderung statt, und ausgeführt, dass neben den Selenium-tests. (Welche Sprache/testing-framework verwenden Sie?)