Смотрите https://github.com/bard/mozrepl/wiki . MozRepl позволяет вам подключаться через telnet, в сочетании с netcat это будет именно то, что вам нужно.
Загрузите сайт и заполните форму из командной строки
Используя командную строку Linux (оболочка Bash), мне нравится загружать определенный веб-сайт в мой браузер (обычно Firefox, но другой будет в порядке, если он работает под Linux) и заполнять предварительно определенную форму некоторыми данными. На самом деле, это должно запускаться из Makefile. Большинство данных формы являются статическими и будут храниться как переменные в Makefile, только некоторые поля должны быть заполнены вручную перед отправкой формы вручную.
Я знаю, как загрузить веб-сайт из командной строки, используя:
firefox <URL>
Но, похоже, нет возможности автоматически заполнять форму переменными, указанными в командной строке. Есть ли плагин, исполняемый файл или JavaScript, который позволяет мне это сделать? Любые предложения и советы приветствуются. Я не против кодирования JavaScript.
2 ответа на вопрос
I solved this now using a Greasemonkey script which copies the URL parameters to the form. The Makefile calls firefox
with the URL including the parameters.
This works for my needs. Some refinements would be needed for more complex input, i.e. some URL encoding.
User Script:
// ==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=$' &
Похожие вопросы
-
6
Какие функции Zsh вы используете?
-
5
Будьте в курсе обновлений?
-
8
Убийство Windows Shell
-
-
3
Автоматизированные массовые скриншоты видео
-
3
Mac OS X: обычные места, где должны жить бинарные файлы
-
2
Mac OS X: нужен простой скрипт
-
6
Хорошее руководство по PowerShell, начало работы с более продвинутым использованием
-
5
Автоматизация нажатий клавиш и действий в Windows
-
2
Как найти, а затем сравнить похожие файлы в папке Dropbox?
-
1
ksh эквивалент perl $! причина ошибки