Dinoer

Eine Weboberfläche von Anfang bis Ende verwalten

Eine Oberfläche hinter einer Anmeldung in mehreren Schritten bedienen: was das mit Dinoer möglich macht, und wo es endet.

Das ist nicht die Aufgabe, für die Dinoer gebaut ist, aber sein Browserkern kann sie noch: rpa.py bedient eine Oberfläche hinter einer Anmeldung, in mehreren Schritten, wie ein Mensch es täte. Nutzen Sie es, wenn die Aufgabe Konfiguration ist und keine Recherche.

Hinter einer HTTP-Basic-Abfrage

Ein Ziel, das zusätzlich zur Anmeldeseite der Anwendung durch die HTTP-Basic-Authentifizierung eines Proxys geschützt ist:

{"http_credentials": true, "url": "https://target.local/admin", "actions": [...]}

Das Szenario nennt weiterhin kein Geheimnis: http_credentials weist Dinoer an, http_username und http_password aus der Datei mit den Zugangsdaten zu lesen und sie dem Browser nur für die Herkunft des Ziels zu übergeben.

Was diesen Fall funktionieren lässt

Ein Aufruf für alles, was vom Seitenzustand abhängt. Anmelden, handeln, prüfen, in einem Aufruf. Auf mehrere Aufrufe verteilt, geht der Seitenzustand ohne Warnung verloren: Eine gespeicherte Sitzung enthält nur Cookies und lokalen Speicher, nie das, was auf dem Bildschirm offen war.

Eine Prüfung am Anfang. Ist die Seite nicht die erwartete, halten Sie an, bevor etwas eingetippt wird:

{"type": "evaluer", "script": "document.title", "contient": "Sign in"}

Das verschlüsselte Verzeichnis für alle Zugangsdaten.

{"type": "remplir", "selecteur": "input[name=\"username\"]",
 "valeur": "depuis_secrets", "secret_cle": "username"},
{"type": "remplir", "selecteur": "input[name=\"password\"]",
 "valeur": "depuis_secrets", "secret_cle": "password"},
{"type": "cliquer", "selecteur": "button[type=\"submit\"]"},
{"type": "attendre_selecteur_present", "selecteur": ".user-menu"}

Das Szenario lässt sich committen, weil es Schlüssel nennt, nie Werte.

Signale lesen, nicht nur das Urteil. Nach jedem Schritt: wo Sie wirklich sind (boussole.url_courante), was der Server geantwortet hat (boussole.dernier_code_http), ob die Sitzung angemeldet ist (auth_status, mit auth_indicator).

Wo es endet

Operationen, die Minuten dauern, passen schlecht: Der Browserkern liefert eine abschließende Antwort, keinen Datenstrom, und ein Zeitlimit heißt nicht, dass etwas gescheitert ist, denn der Server arbeitet weiter, nachdem der Client nicht mehr wartet. Daten auf vielen unabhängigen Websites zu ändern ist nicht, wofür Dinoer gebaut ist; nutzen Sie die API des Ziels, falls es eine hat. Und nichts hier lässt sich rückgängig machen: Dinoer führt die Liste aus, die Sie geschrieben haben, in Maschinengeschwindigkeit.

Rezepte → · Grenzen →