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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 08.11.2012, 13:00
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

а я сделал правильно и у меня "пашет":
Код:
var
  document: IHTMLDocument2;
  btns: IHTMLElementCollection;
  btn: IHTMLElement;
  i: Integer;
begin
  document:=WebBrowser.Document as IHTMLDocument2;
  btns:=document.all.tags('button') as IHTMLElementCollection;
  for i:=0 to btns.length-1 do
  begin
    btn:=btns.item(i, 0) as IHTMLElement;
    if btn.innerText='Заполнено' then btn.click;
  end;
  btns:=document.all.tags('input') as IHTMLElementCollection;
  for i:=0 to btns.length-1 do
  begin
    btn:=btns.item(i, 0) as IHTMLElement;
    if btn.getAttribute('value', 2)='Далее' then btn.click;
  end;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
udachnik2 (08.11.2012)
  #17  
Старый 08.11.2012, 13:09
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

Ща проверим
Ответить с цитированием
  #18  
Старый 08.11.2012, 13:25
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

Спасибо люди дорогие)! Все сработало. Благодарствую за вашу помощь! Извините нас лентяев!))
Ответить с цитированием
  #19  
Старый 08.11.2012, 17:11
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

Ребята. Возникла новая проблема. Которую нужно решить без JQuery и всякой подобной ерунды)) Нужно нажать на радио кнопку. Пробовал:
Код Delphi

Код:
ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
 for i := 0 to (ovElements.Length - 1) do
    if (ovElements.item(i).tagName = 'answer_12255') and
      (ovElements.item(i).type = 'radio') and
      (ovElements.item(i).Value = '1') then
      ovElements.item(i).Click;
Но что то не прокатывает. Кстати, вот код радиобатона:
Код HTML

Код:
<td>
<label><input name="answer_12255" type="radio" value="1" />
Да
</label><label><input name="answer_12255" type="radio" value="0" />
Нет
</label><label><input name="answer_12255" type="radio" value="2" />
Не знаю
</label></td>
Ответить с цитированием
  #20  
Старый 08.11.2012, 21:48
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
Хорошо

берем модуль jsWebBrowser, подключаем и пишем:

Код:
var el: Helems;
begin
Webbrowser1.getElementsByTagName('input',el,'name','answer_12255');
// далее какой по номеру надо на тот и кликай
el[0].click;
//el[1].click;
//el[2].click;
end;

и вариант для JQuery

Код:
Webbrowser1.RunJS('$("input[name=\"answer_12255\"]").eq(1).attr("checked","true");');
// eq - порядковый номер радио кнопки c 0 (JQuery API)

Вот так вот я справился с проблемой. Правда не сам. Но все таки у меня все получилось!
Ответить с цитированием
  #21  
Старый 09.11.2012, 14:26
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию Динамика HTML-кода.

Друзья! та странница, которая выдает мне вот этот код:
Код:
<td>
<label><input name="answer_12255" type="radio" value="1" />
Да
</label><label><input name="answer_12255" type="radio" value="0" />
Нет
</label><label><input name="answer_12255" type="radio" value="2" />
Не знаю
</label></td>
меняет каждый день значение в name. И а менять каждый день это значение в своей программе, как то совсем не катит. Помогите кто чем может.
Ответить с цитированием
  #22  
Старый 09.11.2012, 14:31
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от udachnik2
Друзья! та странница, которая выдает мне вот этот код:
Код:
<td>
<label><input name="answer_12255" type="radio" value="1" />
Да
</label><label><input name="answer_12255" type="radio" value="0" />
Нет
</label><label><input name="answer_12255" type="radio" value="2" />
Не знаю
</label></td>
меняет каждый день значение в name. И а менять каждый день это значение в своей программе, как то совсем не катит. Помогите кто чем может.
Тогда ищи не по "name", а по "type".
Ответить с цитированием
  #23  
Старый 09.11.2012, 14:34
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

Дело в том что как вы видите таких типов на страннице много. Я для пользования использую этот код:
Код:
Webbrowser1.getElementsByTagName('input',el,'name','answer_12255');
Как тогда можно к нему это приспособить. Там ведь все эти элементы в виде массива должны быть. Или нет?
Ответить с цитированием
  #24  
Старый 09.11.2012, 14:38
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от udachnik2
Дело в том что как вы видите таких типов на страннице много. Я для пользования использую этот код:
Код:
Webbrowser1.getElementsByTagName('input',el,'name','answer_12255');
Как тогда можно к нему это приспособить. Там ведь все эти элементы в виде массива должны быть. Или нет?
Я не вижу много таких типов. В приведённом куске я вижу только 3 элемента у которых атрибут name="answer_12255" и 3 элемента у которых атрибут type="radio".
Можешь ещё пробовать искать в определённой ячейке таблицы.
Ответить с цитированием
  #25  
Старый 09.11.2012, 14:49
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

Ну да че то я тупанул.
Вот код:
Код:
<th>
Знаете ли Вы, что историю Ваших платежей можно посмотреть во флэш-офисе в разделе «Кошельки», «Отчетность»?
</th>
<td>
<label><input name="answer_12309" type="radio" value="1" />
Да
</label><label><input name="answer_12309" type="radio" value="0" />
Нет
</label><label><input name="answer_12309" type="radio" value="2" />
Не знаю
</label></td>
</tr>
<tr>
<th>
Знаете ли Вы, что в Кошелек  «Заработано» переходят электронные платежные средства из раздела «Текущий счет» в конце расчетного периода?
</th>
<td>
<label><input name="answer_12310" type="radio" value="1" />
Да
</label><label><input name="answer_12310" type="radio" value="0" />
Нет
</label><label><input name="answer_12310" type="radio" value="2" />
Не знаю
</label></td>
</tr>
<tr>
<th>

Вот так это выглядит. Искать в каждой ячейке, это уж совсем извращение))) Я где то видел примерно такую функцию:
Код:
webbrowser1.getelementsbytagname('type')[0]
Но так приспособить у меня чего то не получается.
Ответить с цитированием
  #26  
Старый 09.11.2012, 14:59
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от udachnik2
Ну да че то я тупанул.
Вот код:
Код:
<th>
Знаете ли Вы, что историю Ваших платежей можно посмотреть во флэш-офисе в разделе «Кошельки», «Отчетность»?
</th>
<td>
<label><input name="answer_12309" type="radio" value="1" />
Да
</label><label><input name="answer_12309" type="radio" value="0" />
Нет
</label><label><input name="answer_12309" type="radio" value="2" />
Не знаю
</label></td>
</tr>
<tr>
<th>
Знаете ли Вы, что в Кошелек  «Заработано» переходят электронные платежные средства из раздела «Текущий счет» в конце расчетного периода?
</th>
<td>
<label><input name="answer_12310" type="radio" value="1" />
Да
</label><label><input name="answer_12310" type="radio" value="0" />
Нет
</label><label><input name="answer_12310" type="radio" value="2" />
Не знаю
</label></td>
</tr>
<tr>
<th>

Вот так это выглядит. Искать в каждой ячейке, это уж совсем извращение)))
Если имя заранее не известно, то чем по-твоему отличается первая половина от второй?
Ответить с цитированием
  #27  
Старый 09.11.2012, 15:03
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

Ничем. Если только содержимое вопроса другое. Но это по любому не правильный ответ. То есть ты хочешь сказать что мне никак не удастся нажать на все радиобатоны на странице? я пробовал искать по радио. но у меня нажимался только первый ответ первого вопроса. Но меня такой спектакль не устраивает))
Ответить с цитированием
  #28  
Старый 09.11.2012, 15:04
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

Ну еще есть вариант что они отличаются окончанием имени)
Ответить с цитированием
  #29  
Старый 09.11.2012, 15:19
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от udachnik2
Ну еще есть вариант что они отличаются окончанием имени)
Вот и получай коллекцию всех INPUT'ов, пройдись по ней и составь список всех имён (групп), потом ещё раз пройдись и отметь в каждой группе нужный элемент.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
udachnik2 (09.11.2012)
  #30  
Старый 09.11.2012, 15:20
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

И вы подскажете как это сделать?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter