Siehe https://github.com/bard/mozrepl/wiki . Mit MozRepl können Sie sich über Telnet verbinden. In Kombination mit Netcat ist dies genau das, was Sie brauchen.
Laden Sie die Website und füllen Sie das Formular über die Befehlszeile aus
Mit der Linux-Kommandozeile (Bash-Shell) lade ich gerne eine bestimmte Website in meinen Browser (normalerweise Firefox, aber andere wäre in Ordnung, solange sie unter Linux läuft) und fülle ein vordefiniertes Formular mit einigen Daten aus. Eigentlich sollte dies von einem Makefile ausgehen. Die meisten Formulardaten sind statisch und werden als Variablen im Makefile gespeichert. Einige Felder müssen manuell ausgefüllt werden, bevor das Formular manuell gesendet wird.
Ich weiß, wie man die betreffende Website von der Kommandozeile aus lädt :
firefox <URL>
Es scheint jedoch keine Möglichkeit zu geben, das Formular automatisch mit Variablen aus der Befehlszeile auszufüllen. Gibt es ein Plugin, eine ausführbare Datei oder ein JavaScript, mit dem ich dies tun kann? Anregungen und Hinweise sind willkommen. Ich habe nichts dagegen, etwas JavaScript zu schreiben.
2 Antworten auf die Frage
Ich habe dies jetzt mit einem Greasemonkey-Skript gelöst, das die URL-Parameter in das Formular kopiert. Das Makefile ruft firefox
mit der URL einschließlich der Parameter auf.
Das funktioniert für meine Bedürfnisse. Für komplexere Eingaben sind einige Verfeinerungen erforderlich, z. B. eine URL-Codierung.
Benutzerskript:
// ==UserScript== // @name Fill CTAN upload form // @namespace http://www.scharrer-online.de/namespace/ // @description Fills the CTAN upload form with the data provided as URL variables // @include http://*.ctan.org/upload.html* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js // ==/UserScript== //var $ = unsafeWindow.jQuery; // From http://papermashup.com/read-url-get-variables-withjavascript/ // Added: decodeURI function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = decodeURI(value); }); return vars; } var vars = getUrlVars(); for (name in vars) { $("input[name=" + name + "]").val(vars[name]); $("select[name=" + name + "]").find("option:selected").removeAttr('selected'); $("select[name=" + name + "]").find("option[value=" + vars[name] + "]") .attr('selected','selected'); } if ('DoNotAnnounce' in vars) { var val = vars['DoNotAnnounce'].toLowerCase(); if (val == '1' || val == 'yes' || val == 'true') { $("input[name=DoNotAnnounce]").attr('checked','checked'); } }
Makefile:
# CTAN Upload CTAN=http://dante.ctan.org/upload.html CONTRIBUTION=filemod VERSION= NAME=John Doe EMAIL=john.doe@somewhere.com SUMMARY=Updated to $: DIRECTORY=/macros/latex/contrib/$ DONOTANNOUNCE= ANNOUNCEMENT= NOTES= LICENCE=free FREEVERSION=lppl #FILE= # can't be set because of security limitations upload: ctanify firefox 'http://dante.ctan.org/upload.html?contribution=$&version=$&name=$&email=$&summary=$&directory=$&DoNotAnnounce=$&announce=$¬es=$&license=$&freeversion=$' &
Verwandte Probleme
-
6
Welche zsh-Funktionen verwenden Sie?
-
5
Mit Updates auf dem Laufenden bleiben?
-
8
Die Windows-Shell töten
-
3
Automatisierte Bulk-Screencaps von Videos
-
3
Mac OS X: herkömmliche Orte, an denen Binärdateien gespeichert werden sollen
-
2
Mac OS X: einfaches Skript gesucht
-
6
Guter PowerShell-Leitfaden, der durch fortgeschrittene Verwendung Einstieg leistet
-
5
Automatisieren von Tastatureingaben und Aktionen in Windows
-
2
Wie finde und vergleiche ich ähnliche Dateien im Dropbox-Ordner?
-
1
ksh entspricht perl $! Fehlerursache