Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Програмное нажатие на кнопку на сайте 
:(
    Опции темы
borockov
Дата 28.11.2012, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



Привет всем друзья, Никак не получается программно нажать на кнопку на сайте. Пожалуйста кому не сложно посмотрите, есть подозрения что проблема из за Фрейма. http://www.fips.ru/cdfi/Fips2009.dll/ после перехода нажмите на кнопку гостевой вход, затем "Патентные документы РФ (рус.)" выберите все чекбоксы, далее нажмите на ссылку поиск слева. Открывается форма, в поле автор введите к примеру "Иванов",и нажмите поиск. Открывается страница со списком ссылок, выберите любой на открывшейся странице есть кнопка "Версия для печати" вот на эту кнопку не получается никак нажать. Пробовал таким образом:
Код

procedure TForm1.Button4Click(Sender: TObject);
var
j:integer;
begin
for j := 0 to WebBrowser1.OleObject.Document.all.tags('input').length - 1 do
   begin
   try
   if (WebBrowser1.OleObject.Document.all.tags('input').item(i).value='Версия для печати') then
   WebBrowser1.OleObject.Document.all.tags('input').item(i).click;
   except
end;


и таким
Код

var
a:variant;
begin
a:=Webbrowser1.Oleobject.Document.GetElementById('Версия для печати');
a.click;
end;

Никак не могу понять в чём проблема smile 
PM MAIL   Вверх
Illusion Dolphin
Дата 28.11.2012, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 5
Всего: 63



Вызваь JS:
Код

window.location = 'http://www1.fips.ru/fips_servl/fips_servlet?lockId='+values["SessionKey"]+'&hitListURL='+values["IPSKey"]+'&Index='+values["CurrentDoc"]+'&NumEnv='+values["NumEnv"];


Как вызвать JS - гугол

Это сообщение отредактировал(а) Illusion Dolphin - 28.11.2012, 19:08


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
borockov
Дата 28.11.2012, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



Пожалуйста, помоги разобраться, нашел по документацию по вызову JS http://jqbook.narod.ru/delphi/javascript.htm  но тут описывается пример работы с Ebededwebbrowser
PM MAIL   Вверх
Illusion Dolphin
Дата 28.11.2012, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 5
Всего: 63



https://www.google.by/search?q=twebbrowser+...lient=firefox-a
Первая ссылка - http://www.delphidabbler.com/articles?article=21 
Код

uses
  MSHTML;

procedure TForm1.CallFoo(S: string; I: Integer);
  { Calls JavaScript foo() function }
var
  Doc: IHTMLDocument2;      // current HTML document
  HTMLWindow: IHTMLWindow2; // parent window of current HTML document
  JSFn: string;             // stores JavaScipt function call
begin
  // Get reference to current document
  Doc := WebBrowser1.Document as IHTMLDocument2;
  if not Assigned(Doc) then
    Exit;
  // Get parent window of current document
  HTMLWindow := Doc.parentWindow;
  if not Assigned(HTMLWindow) then
    Exit;
  // Run JavaScript
  try
    JSFn := Format('foo("%s",%d)', [S, I]);  // build function call
    HTMLWindow.execScript(JSFn, 'JavaScript'); // execute function
  except
    // handle exception in case JavaScript fails to run
  end;
end;



--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
borockov
Дата 28.11.2012, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



Спасибо дружище. Надо всё таки научиться пользоваться и буржунетом=))) 
PM MAIL   Вверх
borockov
Дата 30.11.2012, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



Друзья, помогите пожалуйста разобраться с тем как вызывать js в делфи? Никак не получается нажать на кнопку, 3 день уже пытаюсь ничего не выходит. 
Код

Procedure TEmbeddedWB. RunJS ( js:string ); 
begin
webbrowser1.execScript (текст js скрипта);
end;


затем вызвать эту процедуру в событий onclick button? Из за слабого знания английского не могу разобраться в документаций, пожалуйста кому не сложно объясните как это делается.
PM MAIL   Вверх
borockov
Дата 30.11.2012, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



Друзья вот использую этот код для нажатия на кнопку программно, вылетает ошибка eoleexception..... "не удалось завершить действие" 
Стрелочка показывает на эту строчку 
Код

HTMLWindow.execScript(JSFn, 'JavaScript'); // execute function
 
Код

procedure TForm1.Button16Click(Sender: TObject);
var
  Doc: IHTMLDocument2;
  HTMLWindow: IHTMLWindow2;
  JSFn: string;
  ovElements: OleVariant;
  i: Integer;
begin
  Doc := WebBrowser1.Document as IHTMLDocument2;
  if not Assigned(Doc) then
    Exit;
  HTMLWindow := Doc.parentWindow;
  if not Assigned(HTMLWindow) then
    Exit;
  try
    JSFn := Format('javascript:DocPrint()', [S, I]);  // build function call
    HTMLWindow.execScript(JSFn, 'JavaScript'); // execute function
  except
  {ovElements := WebBrowser1.OleObject.Document.frames.item(2).document.Forms.Item( 0 ).Elements;
  for i := 0 to (ovElements.Length - 1) do
    if (ovElements.item(i).tagName = 'input') and
      (ovElements.item(i).type = 'button') and
  (ovElements.item(i).Value = 'Âåðñèÿ äëÿ ïå÷àòè') then
      ovElements.item(i).Click;    }
end;
end;

PM MAIL   Вверх
Illusion Dolphin
Дата 30.11.2012, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 5
Всего: 63



Цитата

javascript:DocPrint()

а там точно нада приписка "javascript:" ? это ж вроде излишнее и он модет кинуть ошибку что не знает что такое за переменная javascript. 


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
borockov
Дата 30.11.2012, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



И с припиской и без выдаёт ошибку, Eoleexception with message "Не удалось завершить действие" ошибка 80020101, и стрелочка указывает на туже строчку что и раньше
Код

HTMLWindow.execScript(JSFn, 'JavaScript'); //


Это сообщение отредактировал(а) borockov - 30.11.2012, 21:40
PM MAIL   Вверх
borockov
Дата 30.11.2012, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



По моему всё таки эта проблема из за политики безопасности IE. Интересно а настройках можно это как то отключить
PM MAIL   Вверх
borockov
Дата 2.12.2012, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



Друзья, ну  кто может подсказать, помочь по моему вопросу. Неделю уже мучаю себя, и webbrowser, прошу помощи.

Добавлено через 9 минут и 30 секунд
В настройках IE включил возможность перехода по фремам с другими доменами, всё равно ничего не получается

Добавлено через 10 минут и 23 секунды
И кстати этот код я не смог понять как использовать 
Код

window.location = 'http://www1.fips.ru/fips_servl/fips_servlet?lockId='+values["SessionKey"]+'&hitListURL='+values["IPSKey"]+'&Index='+values["CurrentDoc"]+'&NumEnv='+values["NumEnv"];

PM MAIL   Вверх
borockov
Дата 2.12.2012, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



И как вот это 
Код

window.location = 'http://www1.fips.ru/fips_servl/fips_servlet?lockId='+values["SessionKey"]+'&hitListURL='+values["IPSKey"]+'&Index='+values["CurrentDoc"]+'&NumEnv='+values["NumEnv"];

можно вставить в delphi
PM MAIL   Вверх
borockov
Дата 2.12.2012, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



Тут на одном форуме посоветовали "Тебе нужно найти массив "values" и спарсить значения в момент когда они туда пишутся. Потом просто в наглую подставишь их в ссылку и все будет как надо."
PM MAIL   Вверх
Illusion Dolphin
Дата 2.12.2012, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 5
Всего: 63



Сначала:
Код

procedure TForm21.Button2Click(Sender: TObject);
var
  Doc: IHTMLDocument2;      // current HTML document
  HTMLWindow: IHTMLWindow2; // parent window of current HTML document
  JSFn: string;             // stores JavaScipt function call
begin
  // Get reference to current document
  Doc := WebBrowser1.Document as IHTMLDocument2;
  if not Assigned(Doc) then
    Exit;
  // Get parent window of current document
  HTMLWindow := Doc.parentWindow;
  if not Assigned(HTMLWindow) then
    Exit;
  // Run JavaScript
  try
    HTMLWindow.execScript('window.location = document.getElementById("F2").src;', 'JavaScript'); // execute function
  except
    on e: Exception do
      ShowMessage(e.ToString);
  end;
end;


Потом 
Код

procedure TForm21.Button3Click(Sender: TObject);
var
  Doc: IHTMLDocument2;      // current HTML document
  HTMLWindow: IHTMLWindow2; // parent window of current HTML document
  JSFn: string;             // stores JavaScipt function call
begin
  // Get reference to current document
  Doc := WebBrowser1.Document as IHTMLDocument2;
  if not Assigned(Doc) then
    Exit;
  // Get parent window of current document
  HTMLWindow := Doc.parentWindow;
  if not Assigned(HTMLWindow) then
    Exit;
  // Run JavaScript
  try
    HTMLWindow.execScript('window.location = "http://www1.fips.ru/fips_servl/fips_servlet?lockId="+values["SessionKey"]+"&hitListURL="+values["IPSKey"]+"&Index="+values["CurrentDoc"]+"&NumEnv="+values["NumEnv"];', 'JavaScript'); // execute function
  except
    on e: Exception do
      ShowMessage(e.ToString);
  end;
end;


Думаю, что суть понятна.


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
borockov
Дата 2.12.2012, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 8.9.2012

Репутация: нет
Всего: нет



Огромное тебе спасибо друг!!! Суть, понял, всё заработало!!! Ура!
PM MAIL   Вверх
kuzyara
Дата 4.12.2012, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



парсить сайт, эмулируя нажатия кнопок - брррр...
--------------------
подпись
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1117 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.