Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2016, 11:41   #1
Урсула
Пользователь
 
Аватар для Урсула
 
Регистрация: 08.05.2016
Сообщений: 22
По умолчанию Алгоритм в WebBrowser'е, не кликает по кнопке

Сразу хочу отметить, что тема необычная, она скорей относится не столько к Delphi, сколько находится на стыке Delphi и HTML.
У меня есть код, который должен отправлять сообщения на каком-либо форуме:
Код:
var
I, I1 : Integer;
S : Variant;
begin
for I := 0 to WebBrowser1.OleObject.Document.Forms.Item(0).Elements.length -1 do
if WebBrowser1.OleObject.Document.Forms.Item(0).Elements.Name = '' then
begin
S := WebBrowser1.OleObject.Document.Forms.Item(0).Elements;
end;
for I1 := 0 to (S.length -1) do
begin
if (S.Item(I1).Name = '5555') then
S.Item(I1).Value := '5555';
if (S.Item(I1).Name = '5555') then
S.Item(I1).Value := '5555';
if (S.Item(I1).Value = 'Отправить') then
S.Item(I1).Click;
end;

end;
Однако, когда я запускаю данный код, не происходит ничего. Судя по всему, попросту не происходит клик на кнопку "Отправить". При этом, когда я использую этот код для авторизации, клик вполне себе происходит.
Я сравнила исходники со страницы авторизации и со страницы отправки поста. Вот кнопка входа в аккаунт:
Код:
<p><input value="Вход" class="button_submit" type="submit"></p>
А вот - отправки сообщения:
Код:
<input value="Отправить" tabindex="6" onclick="return submitThisOnce(this);" accesskey="s" class="button_submit" type="submit">
К сожалению, я плохо разбираюсь в HTML, чтобы понять, в чем тут дело. Кто знает - подскажите!
Урсула вне форума Ответить с цитированием
Старый 17.06.2016, 12:21   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Разница в том, что в первом случае просто происходит отправка формы серверу, а во втором для этого вызывается js-функция, которая может как проверить форму, так и добавить какие-то параметры, без которых сервер просто завернет вашу посылку.
p51x вне форума Ответить с цитированием
Старый 17.06.2016, 13:01   #3
Урсула
Пользователь
 
Аватар для Урсула
 
Регистрация: 08.05.2016
Сообщений: 22
По умолчанию

Хорошо и как же быть? Что писать вместо:
Код:
S.Item(I1).Click
?
Урсула вне форума Ответить с цитированием
Старый 17.06.2016, 13:07   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

1. Открыть код и посмотреть, что делает нужная функция
2. Вызвать эту функцию через IHTMLWindow2 и подобное
p51x вне форума Ответить с цитированием
Старый 17.06.2016, 13:25   #5
Урсула
Пользователь
 
Аватар для Урсула
 
Регистрация: 08.05.2016
Сообщений: 22
По умолчанию

Как воспользоваться этим IHTMLWindow2 (и что это собственно такое)?
Урсула вне форума Ответить с цитированием
Старый 17.06.2016, 13:27   #6
Урсула
Пользователь
 
Аватар для Урсула
 
Регистрация: 08.05.2016
Сообщений: 22
По умолчанию

И еще. В любом случае, неважно, что делает эта функция - мне нужно только одно: кликнуть по кнопке.
Урсула вне форума Ответить с цитированием
Старый 17.06.2016, 13:31   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Важно. Вы в курсе, что происходит по клику? В курсе, что данные отправляются серверу и их он обрабатывает? В курсе, что он их может спокойно отбросить по каким-то причинам? И т.д.

П.С. Используйте второй вариант
p51x вне форума Ответить с цитированием
Старый 17.06.2016, 14:15   #8
Урсула
Пользователь
 
Аватар для Урсула
 
Регистрация: 08.05.2016
Сообщений: 22
По умолчанию

Цитата:
Важно. Вы в курсе, что происходит по клику? В курсе, что данные отправляются серверу и их он обрабатывает? В курсе, что он их может спокойно отбросить по каким-то причинам? И т.д.
Но это все не мое дело. Мое дело - нажать на кнопку. Собственно все современные компьютерные системы, так и устроены, что пользовательский интерфейс абстрагируется, а сами исполнительные механизмы скрываются.
Урсула вне форума Ответить с цитированием
Старый 17.06.2016, 14:18   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Какая задача? Зачем вам ее нажимать?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 17.06.2016, 14:19   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Тогда не идите в программисты. Выключите delphi. Откройте любимы браузер и ткните мышкой в кнопку.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поток по кнопке Maks3 C# (си шарп) 7 05.02.2015 12:48
Мышка не кликает :( WennY Общие вопросы C/C++ 1 24.10.2013 12:00
клик по кнопке STALERUM Работа с сетью в Delphi 0 16.09.2012 17:00
таблица по кнопке danyar PHP 1 19.05.2011 17:25
Картинка на кнопке Михаил Юрьевич Общие вопросы Delphi 5 19.12.2009 22:18