Есть сайт для отправки писем http://fsin-pismo.ru. Я хочу как-то автоматизировать работу с ним в браузере, например, заполнять форму отправки письма javascript'ом
Например, у мнея браузер Firefox с аддоном Remote Control.
Я могу выбрать учреждение примерно следующими командами:
echo 'var ev = document.createEvent ("MouseEvents");ev.initEvent ("click", true, true);document.getElementById("CreateLetter.RegionComboBox").getElementsByTagName("img")[0].dispatchEvent (ev);' | nc localhost 32000
sleep 1
echo 'var d = document.getElementById("x-auto-10").getElementsByTagName("div");for (var i = 0; i < d.length; i++) {if (d[i].innerHTML == '"'"$REGION"'"') {var ev = document.createEvent("MouseEvents");ev.initEvent("click",true,true);d[i].dispatchEvent(ev);break;};};' | nc localhost 32000
echo 'var ev = document.createEvent ("MouseEvents");ev.initEvent ("click", true, true);document.getElementById("CreateLetter.DepartmentComboBox").getElementsByTagName("img")[0].dispatchEvent (ev);' | nc localhost 32000
sleep 1
echo 'var d = document.getElementById("x-auto-12").getElementsByTagName("div");for (var i = 0; i < d.length; i++) {if (d[i].innerHTML == '"'"$DEPARTMENT"'"') {var ev = document.createEvent("MouseEvents");ev.initEvent("click",true,true);d[i].dispatchEvent(ev);break;};};' | nc localhost 32000
echo 'document.getElementById("CreateLetter.PisonerLastNameTextField").value = "'"$LASTNAME"'";' | nc localhost 32000
И вот когда я всё заполнил и вручную в окне браузера нажимаю кнопку «Отправить», письмо не отправляется, появляется ошибка: «Null properties». При этом в окне браузера всё выглядит правильно.
Я подозреваю, что правильно не заполняются именно поля input. В чём тогда для сайта разница, заполняю ли я это руками или прописываю в скрипте value = string? Есть ли какой-нибудь другой способ заполнить поля, чтобы более точно симулировать пользовательский ввод?
Конечно, можно вообще зайти издалека и применить что-нибудь в роде xdotool, да уж больно не хочется.