Ich habe eine Website mit einem Login-Formular. Wenn ein Benutzer nicht angemeldet ist und versucht, auf eine interne Seite zuzugreifen, wird er auf die Standardseite umgeleitet. Zum Beispiel, wenn ich versuche, auf http://siteURL.PhantomPrint.aspx
zuzugreifen, werde ich auf http://siteURL/Default.aspx?ReturnUrl=PhantomPrint.aspx.
umgeleitet werden und nach dem Login wird eine automatische Weiterleitung auf der Seite stattfinden.Phantomjs Login, Redirect und Render Seite nach SeiteLoad beendet
Nach der Umleitung möchte ich die Seite mit Phantomjs rendern und als PDF speichern. Das Problem besteht darin, dass das Rendering vor dem Laden der Seite erfolgt und ich die Seite nur dann richtig rendern kann, wenn ich Timeouts verwende. In diesem Fall, wenn das Laden der Seite länger als normal dauert, ist die resultierende PDF nicht die richtige.
Unten können Sie die Java-Script-Code finden:
var page = require('webpage').create();
var index = 0,
page.onConsoleMessage = function (msg) {
console.log(msg);
};
var steps = [
function() {
//Load Login Page
page.open("http://siteURL.PhantomPrint.aspx", function() {
//Enter Credentials
page.evaluate(function() {
console.log("filling inputs");
var usernameInput = document.getElementById("txtUsername");
usernameInput.value = "user";
var passwordInput = document.getElementById("txtPassword");
passwordInput.value = "password";
var loginButton = document.getElementById("btnLogin");
loginButton.click();
console.log("login button was submitted");
});
});
},
function() {
// page.onLoadFinished = function() {
// Render the page to pdf
page.render('example.png');
phantom.exit();
console.log("rendering finished");
//});
}
];
interval = setInterval(function() {
if (!loadInProgress && typeof steps[testindex] == "function") {
console.log("step " + (testindex + 1));
steps[testindex]();
testindex++;
}
if (typeof steps[testindex] != "function") {
console.log("test complete!");
phantom.exit();
}
}, 1000);
Vorschläge, wie ich das Rendering erfolgt nur versichern kann, nachdem die umgeleitet Seite geladen wird Schlichten begrüßt.
Ich sehe keine Rekursion. –