ZebroidФорумПубличный разделВопросыПомогите написать щаблон автопостинга

Помогите написать щаблон автопостинга

14 августа 2014, 18:02
Зарегистрирован: 04 ноября 2013, 18:44
есть вот такая форма логина на сайте
<div id="all" class="ind_usr">
			<div id="body">
				                        <form method="post" action="" onsubmit="AjaxLogin(this); return false;" class="login">
    <h1>Вход</h1>
    <dl>
        <dt>
            <label for="login_login">Логин:</label>
        </dt>
        <dd>
            <input type="text" id="login_login" name="login" value="" class="radius3" />
        </dd>

        <dt>
            <label for="login_password">Пароль:</label>
        </dt>
        <dd>
            <input type="password" id="login_password" name="password" value="" class="radius3" />
            <span class="error radius3" style="visibility: hidden"></span>
        </dd>
        <dt>
            <div class="forgot">
                <a href="http://mypage.ru/forgot/">Забыли пароль?</a>
            </div>

        </dt>
        <dd class="login_submit">
            <div class="radius3">
                <p>
                    <input id="remember_" type="checkbox" name="remember" value="on" checked="checked" />
                    <label for="remember_">Запомнить меня</label>
                </p>
                <input type="submit" value="Войти" />
                <input type="hidden" value="" name="back" />
            </div>
        </dd>
    </dl>
</form>									<div class="clear"></div>
			</div>
		</div>

у нее ни имени ни айди, ничего не задано
как на нее сослаться?
я взял за основу щаблон fc2.com

procedure Login();
var
x, y: integer;
begin
Randomize();
x := Random(40);
y := Random(20);
Navigate('http://xxx.ru/login/', true);
ExecJS('document.login.innerHTML=document.login.innerHTML+''/>/>'';', false);
FillForm('login', '$LOGIN');
FillForm('password', '$PASSWORD');
Wait(1);
ExecJS('blog_login_form_check();', false);
ExecJS('document.login.submit();', true);
end;

как тут находить эту форму, главное интересует как сделать submit, заполнение уже получилось

также объясните пожалуйста что делает и зачем нужно
ExecJS('document.login.innerHTML=document.login.innerHTML+''/>/>'';', false);

и
Randomize();
x := Random(40);
y := Random(20);

Комментарий отредактирован 2 раз(а). Последний раз редактировал konfuciy 14 августа 2014, 18:27.
14 августа 2014, 21:08
Зарегистрирован: 04 ноября 2013, 18:44
на этой странице входа, как я понял ява скрипты не нужны, но невозможно войти из-за того, что непонятно как запостить форму или как нажать кнопку, которые не имеют артибутов id и name

14 августа 2014, 22:00
Зарегистрирован: 04 ноября 2013, 18:44
вход осуществить удалось, но очень извращенным способом, через эмуляцию нажатия множества кнопок
теперь проблема как запостить через визуальный редактор.
как обозначить область, куда вводить текст?

Комментарий отредактирован 1 раз(а). Последний раз редактировал konfuciy 15 августа 2014, 09:42.
14 августа 2014, 23:46
Зарегистрирован: 10 апреля 2012, 00:00
В формы есть функция onsubmit, можно просто ее вызывать.
Что касается визуального редактора, то как и в любом другом случае говорить можно только имея перед собой конкретную страницу. Пример того, как я работаю с визуальными редакторами можно увидеть во многих стандартных скриптах постинга, схема в большинстве случаев одинаковая.

А если по существу, то такие вопросы не входят в круг обязанностей саппорта, потому что вы либо знаете как устроены веб страницы и что нужно делать в конкретной ситуации (соответственно вопросы подобного рода у вас не могут возникать), либо не знаете (но тогда и скрипты автопостинга писать не получится).

Написание скриптов автопостинга в Зеброиде — это не то, чем может заниматься любой неподготовленный пользователь программы

15 августа 2014, 09:55
Зарегистрирован: 04 ноября 2013, 18:44

admin в своем сообщении писал(а):В формы есть функция onsubmit, можно просто ее вызывать.
Что касается визуального редактора, то как и в любом другом случае говорить можно только имея перед собой конкретную страницу. Пример того, как я работаю с визуальными редакторами можно увидеть во многих стандартных скриптах постинга, схема в большинстве случаев одинаковая.

А если по существу, то такие вопросы не входят в круг обязанностей саппорта, потому что вы либо знаете как устроены веб страницы и что нужно делать в конкретной ситуации (соответственно вопросы подобного рода у вас не могут возникать), либо не знаете (но тогда и скрипты автопостинга писать не получится).

Написание скриптов автопостинга в Зеброиде — это не то, чем может заниматься любой неподготовленный пользователь программы



1.
как использовать onsubmit, как сослаться на форму, не имеющую name и id?

2.
форма постинга записи

<form method="post" action="" id="form_add_">
                    <dl>
                        			<dt><label>Заголовок</label></dt>
			<dd>
				<input class="form_text form_title" type="text" name="title" value="привет всем" />
			</dd>

			<dt><label>Запись</label></dt>
			<dd>
				<script type="text/javascript">editorInitOnLoad();</script>
				<textarea id="editor_txt" name="txt" class="form_editor"><p><a href=http://www.ya.ru>find!</a></p></textarea>
			</dd>
	                                                                        <dt>
                            <label>Метки</label>
                        </dt>
                        <dd>
                            <input type="text" name="tags" class="form_text" id="post_tags" autocomplete="off"  />
                            <a href="#" id="post_tags_button" class=" button"><i>Добавить метку</i></a>
                            <div class="clear"></div>
                            <div id="tag_ear">
                                <ul id="tags_tabs">
                                    <li class="active">
                                        <a href="#" onclick="tags_freq(this);return false;">частые</a>
                                    </li><li>
                                        <a href="#" onclick="tags_all(this); return false;">все</a>
                                    </li>
                                </ul>
                                <div id="tags_freq">
                                                                    </div>
                                <div id="tags_all" style="display: none;">
                                                                    </div>
                            </div>
                            <div id="tag_used" style="display: none;">
                                Метки используемые в этой записи:
                                <ul>
                                                                    </ul>
                            </div>
                        </dd>
                        
                        <dd class="options">
                            <ul class="allows">
                                                                <li>
                                    <input type="radio" name="allow" value="all" id="post_for_all" checked="true" />
                                    <label for="post_for_all"> Запись для всех</label>
                                </li><li>
                                    <input type="radio" name="allow" value="friends" id="post_for_friends" />
                                    <label for="post_for_friends"> Запись для друзей</label>
                                </li>
                                                                                                                                                            </ul>
                            <ul class="options">
                                <li>
                                    <input type="checkbox" name="comments_off" id="ch_comments_off" /><label for="ch_comments_off"> Запретить комментирование этой записи</label>
                                </li><li>
                                    <input type="checkbox" name="post_fix" id="ch_fix" value="on" /><label for="ch_fix"> Закрепить запись вверху</label>
                                </li>
                                                                                            </ul>
                            <div class="clear"></div>
                                                        <input type="hidden" name="url" value="" />

                        	                        	<div id="cat"  style="display: none;">
                            	<dl>
                            	<dt id="category_list_l"></dt>
                            	<dd id="category_list">
                                                           	</dd>
                            	</dl>
                        	</div>
                        							</dd>

                        
                        <dd class="buttons">
                             <a href="#" id="post_blog" class=" submit"><i>Опубликовать</i></a>
                             <a href="#" id="post_preview" class=" button"><i>Предварительный просмотр</i></a>
                             <a href="#" id="post_draft" name="draft" value="draft" class=" button"><i>В черновик</i></a>
                             <input type="submit" value="Опубликовать" style="display: none" />
                             <div class="clear"></div>
                        </dd>

                    </dl>
                                        <input type="hidden" name="autosave_id" value="" />
                                    </form>


3.
«А если по существу, то такие вопросы не входят в круг обязанностей саппорта, потому что вы либо знаете как устроены веб страницы и что нужно делать в конкретной ситуации (соответственно вопросы подобного рода у вас не могут возникать), либо не знаете (но тогда и скрипты автопостинга писать не получится).»

напишите хелп поразвернутей с примерами, там примеров совсем нет на странице про автопостинг.
вы обещали помочь со скриптом, когда я начну делать.

«Для того, чтобы научится создавать свои скрипты автопостинга — вам необходимо иметь базовые умения программирования, знание HTML, а так же знание API функций, которые доступны для управления браузером в сриптах.»
Я программировал на паскале, знаю HTML, функции, описанные вами в хелпе я понял. Однако хелп очень куций по этому вопросу, поэтому все это меня не спасает.
Лучше бы попробовали помочь, уважаемый саппорт.

18 августа 2014, 16:49
Зарегистрирован: 10 апреля 2012, 00:00
1. С onsubmit я ошибся, так как в функции используется ссылка на форму, которую опять таки нужно искать. В вашем случае лучше сабмитить форму по индексу с помощью функции SubmitFormByIndex. Например если у вас одна форма на странице, или она идёт первой — тогда вызов будет иметь следующий вид «SubmitFormByIndex(1, true);»

2. Не увидел в коде страницы визуального редактора. По всей видимости вы скинули код страницы до его обработки браузером, а нужно после. Если использовать FireFox и плагин WebDeveloper, то уже обработанный код можно увидеть с помощью вызова следующего инструмента: i.imgur.com/iYhLPxs.png

3. Мало знать паскаль и HTML. Для написания скриптов подобного рода, необходимо знать как устроено взаимодействие с браузером. А оно полностью состоит из JavaScript. И все те готовые функции, которые предоставляет Зеброид — это ни что иное, как вызов уже описанных мной JavaScript функций. И если вы знаете JS, тогда у вас никогда не возникнет вопроса как найти форму, у которой нету имени и id, так как способов на самом деле много: начиная от перебора всех форм в поиске нужной, заканчивая работой с DOM. А теперь скажите мне какое отношение имеют вопросы по JavaScript к саппорту программы Зеброид? Я не могу каждого пользователя, который желает научится писать скрипты автопостинга попутно обучать еще и JS.

18 августа 2014, 17:07
Зарегистрирован: 04 ноября 2013, 18:44

admin в своем сообщении писал(а):1. С onsubmit я ошибся, так как в функции используется ссылка на форму, которую опять таки нужно искать. В вашем случае лучше сабмитить форму по индексу с помощью функции SubmitFormByIndex. Например если у вас одна форма на странице, или она идёт первой — тогда вызов будет иметь следующий вид «SubmitFormByIndex(1, true);»

пробовал, с этого начал, по каким-то причинам оно не работает, на странице две формы, я подставлял все цифры от 0 до 3х.
позже выложу точную ошибку которая происходит.

2. Не увидел в коде страницы визуального редактора. По всей видимости вы скинули код страницы до его обработки браузером, а нужно после. Если использовать FireFox и плагин WebDeveloper, то уже обработанный код можно увидеть с помощью вызова следующего инструмента: i.imgur.com/iYhLPxs.png

спасибо, не знал о такой фишке, попробую

3. Мало знать паскаль и HTML. Для написания скриптов подобного рода, необходимо знать как устроено взаимодействие с браузером. А оно полностью состоит из JavaScript. И все те готовые функции, которые предоставляет Зеброид — это ни что иное, как вызов уже описанных мной JavaScript функций. И если вы знаете JS, тогда у вас никогда не возникнет вопроса как найти форму, у которой нету имени и id, так как способов на самом деле много: начиная от перебора всех форм в поиске нужной, заканчивая работой с DOM. А теперь скажите мне какое отношение имеют вопросы по JavaScript к саппорту программы Зеброид? Я не могу каждого пользователя, который желает научится писать скрипты автопостинга попутно обучать еще и JS.


не надо обучать ява-скрипту, хотя я был бы не против)
достаточно будет описать подробно хотя бы те процедуры и функции, которые внесены вами в автопостинг, дальше я разберусь. в частности, процедуры SubmitFormByIndex

18 августа 2014, 17:16
Зарегистрирован: 10 апреля 2012, 00:00
Процедура SubmitFormByIndex есть в документации. Без знаний JS у вас в ряд ли получится отправить текст в визуальный редактор.

18 августа 2014, 17:31
Зарегистрирован: 04 ноября 2013, 18:44

admin в своем сообщении писал(а):Процедура SubmitFormByIndex есть в документации. Без знаний JS у вас в ряд ли получится отправить текст в визуальный редактор.

пока она мне нужна была для другого, отправить хотя бы форму входа

19 августа 2014, 17:04
Зарегистрирован: 04 ноября 2013, 18:44

admin в своем сообщении писал(а):Процедура SubmitFormByIndex есть в документации. Без знаний JS у вас в ряд ли получится отправить текст в визуальный редактор.


мой скрипт логина

procedure Login();
begin
Navigate('http://mypage.ru/login/', true);
FillForm('login', '$LOGIN');
FillForm('password', '$PASSWORD');
SubmitFormByIndex(2, true);
Wait(10);
end;

выдает

[10:56:13] POST формы #2
[10:56:13] JavaScript Error: Uncaught TypeError: Cannot call method 'submit' of undefined

на странице две формы, поэтому сабмичу вторую, первая какая-то скрытая. при попытке сабмита первой формы просто очищаются все заполненные данные и дальше поезд не едет

разобрался с тем, что первая форма вызывается номером 0, а не 1 и первая форма — это поиск по сайту.
а вот форма 1 — это как раз то, что надо — форма входа.
Но при сабмите данной формы происходит то, что описано выше — просто очищаются все заполненные данные и дальше поезд не едет
Похоже, что кнопка сабмит не привязана к данной форме и выполняется как-то отдельно. Сабмит же фомы методом SubmitForm приводит просто к тому, что она сабмитится в никуда

Комментарий отредактирован 4 раз(а). Последний раз редактировал konfuciy 19 августа 2014, 17:41.