Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.12.2011, 10:52
smoldersbolds smoldersbolds вне форума
Прохожий
 
Регистрация: 18.12.2011
Сообщения: 2
Репутация: 10
По умолчанию Нажать кнопку без name и id в WebBrowser

Здравствуйте, форумчане! Столкнулся с проблемой нажать на кнопку отправки формы.

Пытался перебрать все компоненты формы
Elements := WebBrowser.oleobject.document.forms.item(0).elemen ts;
Elements.Item(0,1,2 и т.д.).Click();

но это не помогло.

Нашел пример поиска кнопки по id и name , но это не помогает, т.к. у кнопки нет таких свойств.

Был вариант нажимать кнопку
P := WebBrowser.ClientToScreen(Point(100, 100));
SetCursorPos(P.X+150, P.Y+150);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);

но это не удобно.

Каким еще способом можно нажать кнопку или отправить форму?

Код формы:

<form id="wallAddForm" onsubmit="return addwallrecord(534678, 'user', $('#wallCommentBlock').val(), 'тут набор символов');">
<input type="hidden" class="hidden" id="ftoken-f-addWallRecord" name="ftoken-f-addWallRecord" value="2bc7c58467" />
<div id="wallCommentBlockWrap"><textarea id="wallCommentBlock" name="communityWallRecord"></textarea> // Поле ввода текста
<div><a class="btn btn-blue" href="javascript: void(0)" onclick="$('#wallAddForm').submit()">Отправить</a></div> //Кнопка на которую следует нажать
</form>
Ответить с цитированием
  #2  
Старый 18.12.2011, 10:56
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

1. у кнопки есть класс
2. можно выполнить скрипт "$('#wallAddForm').submit()"
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 18.12.2011, 11:03
smoldersbolds smoldersbolds вне форума
Прохожий
 
Регистрация: 18.12.2011
Сообщения: 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
1. у кнопки есть класс
2. можно выполнить скрипт "$('#wallAddForm').submit()"
1. по классу тоже не найти. Выскакивает сообщение об ошибке: "Не поддерживается"
2. А как если не секрет?
Ответить с цитированием
  #4  
Старый 23.12.2011, 21:05
arantir92 arantir92 вне форума
Прохожий
 
Регистрация: 28.10.2011
Сообщения: 24
Репутация: 10
Вопрос У меня похожий вопрос

Что тут может быть не так? вроде как ошибок нет, а не логинит....
Код:
begin
 idhttp1.HandleRedirects:=true;
// StrPage:=idhttp1.Get('------------------------------------');
 //ssylka:=Pars('<form action="', StrPage,'"');
  ssylka:='-----------------------------------';

  Data:=TStringList.Create;
  Data.Add('form_name='+Edit1.Text);
  Data.Add('form_pass='+Edit2.Text);
  Data.Add('form_log=Вход');

  StrPage:=idhttp1.Post(ssylka, Data);
  if Pos('exit', StrPage)<>0 then
  WebBrowser1.Navigate('хххххххххххххххххххххххххххххххххххххххх')
  else
   WebBrowser1.Navigate('ууууууууууууууууууууу');
  Data.Free;
end;
Админ: Пользуемся тегами для оформления кода!
Ответить с цитированием
  #5  
Старый 23.12.2011, 22:41
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

у Indy HTTP запрос всегда должен начинаться с протокола, обычно "http://". естественно, что "ssylka:='-----------------------------------';" не подходит.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #6  
Старый 23.12.2011, 23:09
arantir92 arantir92 вне форума
Прохожий
 
Регистрация: 28.10.2011
Сообщения: 24
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
у Indy HTTP запрос всегда должен начинаться с протокола, обычно "http://". естественно, что "ssylka:='-----------------------------------';" не подходит.

все ссылки начинаются с http://
проблема не в этом
я пробывал парсить, и пробовал этим методом, никак не принимает, почему не знаю....
Я поставил проверку. Если логинит, захожу в профиль, если нет, выкидывает на главную.
При чем при удачном залогинивании, даже если бы я оказался на главной, слева бы всеравно была ссылка "мой профиль" а ее нет...
Пропустил через снифер передаются только эти 3 запроса.

Также хотел бы узнать можно ли поставить по умолчанию на WebBrowser не IE а какой нибудь более адекватный браузер? Если да, то как?
Ну или как убить его тупые ошибки сценария на каждой странице?

Последний раз редактировалось arantir92, 23.12.2011 в 23:28.
Ответить с цитированием
  #7  
Старый 24.12.2011, 09:25
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

для POST запроса нужно указывать "Content-Type: application/x-www-form-urlencoded":
Код:
IdHTTP1.Request.ContentType:='application/x-www-form-urlencoded';
Content-Length можно не указывать - само подставится.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 24.12.2011, 14:02
arantir92 arantir92 вне форума
Прохожий
 
Регистрация: 28.10.2011
Сообщения: 24
Репутация: 10
Вопрос

И еще 1 вопрос, мне нужно вывести на WebBrowser небольшую часть сайта, или вернее сказать, центрировать эту часть сайта на небольшом окошке.
Примерно 50х50 пикселей окно, и нужно чтобы на ней показывалась капча и поле для ее ввода.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:27.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter