Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по WebBrowser и его ovElements 
:(
    Опции темы
razumsap
Дата 25.1.2008, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Собственно вопрос.
Загружаю  в WebBrowser html страничку, на которой присутсвует кнопка.
пытаюсь её нажать (программно - вот код)

Код

var   ovElements: OleVariant;
begin
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
  for i := 0 to (ovElements.Length - 1) do
 if       (ovElements.item(i).Value = 'отправить') then
          ovElements.item(i).Click;
end;


Пишет ошибку по памяти такойто.
Начал трассировать 
и на этой строке ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
выбивает ошибку.

До этого делал всё по отдельности - одной кнопкой на форме загружал страничку в браузер, а другой кнопкой имитировал  нажатие кнопки в браузере.

Мне кажеться это из-за того, что браузер не успел загрузить страницу а я пытаюсь её уже обработать.

Так вот, как дождаться (программно) полной загрузки WebBrowser  чтоб не было ошибки?

Это сообщение отредактировал(а) razumsap - 25.1.2008, 16:20
PM MAIL ICQ   Вверх
MetalFan
Дата 25.1.2008, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

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



Цитата(razumsap @  25.1.2008,  16:09 Найти цитируемый пост)
выбивает ошибку.

ну неужели? и какую же?


Цитата(razumsap @  25.1.2008,  16:09 Найти цитируемый пост)
Так вот, как дождаться (программно) полной загрузки WebBrowser  чтоб не было ошибки?

проверять ReadyState? обработать какой-нибудь OnXXXComplete?



--------------------
There are always someone smarter than you...
PM MAIL   Вверх
razumsap
Дата 4.2.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Такой вопрос
есть пхп страничка на которой есть такой вот код, который программа не находит, т.е.не нпжимает кнопку
Код

<TD ALIGN="RIGHT" WIDTH="50%">
        <FORM name="addc" METHOD="post" ACTION="add.php">
        <span class=pagetitles><CENTER>Добавить</CENTER></span><BR>
        <CENTER><input type=hidden name='action' value='add'>
        <INPUT TYPE="submit" NAME="ДА" VALUE="ДА"></CENTER>
        </FORM>
     </TD>

дело в том что программа прекрасно обрабатывает  строки типа вот этой 
Код

   <input class="text" name="submit" type="submit" class="button" value="отправить">


вот код
Код

  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
  for i := 0 to (ovElements.Length - 1) do
    if (ovElements.item(i).type = 'submit')and
      (ovElements.item(i).VALUE = 'ДА') then
      ovElements.item(i).Click;


кто сталкивался подскажите, почему в 2-х подобных случаях программа работает по разному?
PM MAIL ICQ   Вверх
December
Дата 6.2.2008, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

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



Цитата(razumsap @  4.2.2008,  16:50 Найти цитируемый пост)
VALUE="ДА

Цитата(razumsap @  4.2.2008,  16:50 Найти цитируемый пост)
value="отправить




--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
razumsap
Дата 8.2.2008, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вопрос по этой же теме.

Сталкнулся с ситуацией. WebBrowser загрузил страницу. После чего я её сохраняю на диск и заполняю в ней необходимые поля, после чего опять загружаю в WebBrowser (file://localhost/D:/Delphi/send.html - это её адрес (путь) на диске) нажимаю на нём Отправить и СМС-ка отправляется. 

Сталкнулся с проблемой, что это работает если страница html (), а если php, то нажатие кнопки приводит к ошибке  
Код

Вы попытались получить доступ к адресу file://localhost/D:/Delphi/send.php, который сейчас не доступен. Убедитесь, пожалуйста, что веб-адрес (URL) введен правильно и затем попытайтесь загрузить страницу еще раз.

Он понмает что это локальный файл. Как правильно его подменить в WebBrowser чтоб он понимал что это не локальный файл, а та ВЭБстраничка которую я загрузил перед заполнением полей?

PM MAIL ICQ   Вверх
razumsap
Дата 8.2.2008, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Проблему решил, но через одно место


Код

Webbrowser1.Navigate(S);
while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do
    Application.ProcessMessages;

  AssignFile (f, 'test.htm');
  Reset(f);

while not eof(f) do
 begin
  ReadLn(f, lnk);
  memo1.Lines.Append(lnk);
  end;
CloseFile(f);

 WebBrowser1.OleObject.Document.body.innerhtml := memo1.Text;



Пробовал 
Код

 WebBrowser1.OleObject.Document.body.innerhtml :=  LoadFromFile('test.htm');

Не работает, выдаёт ошибку.
Как записать файл сразу в браузер, а не через memo1.Text.






PM MAIL ICQ   Вверх
tratata
Дата 14.2.2008, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Webbrowser.oleobject.document.all.getelementbyname('ДА').click;
PM MAIL   Вверх
vitalyu
Дата 26.3.2008, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Раз уж тут такая активная поддержка, позвольте спросить:

К примеру, у меня есть в моем html (находящемся в TWebBrowser) java-скрипт вкропление. Как мне можно считать значения переменных в java? и записать туда иные значения.

Зачем все это мне нужно. Хочу использовать java-скрипт как интерпретатор. И заодно выводить различную информацию в TWebBrowser.

Заранее спасибо )
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

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


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

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

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


 




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


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

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