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

Delphi Sources



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

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

Цитата:
Сообщение от udachnik2
И вы подскажете как это сделать?
Получить коллекцию можно тем кодом, ссылку на которую я давал.
Или же если использовать вышеуказанный модуль jsWebBrowser, то примерно как-то так:
Код:
Webbrowser1.getElementsByTagName('input',el,'type','radio');
И потом пройдись по этому списку обычным циклом for..do.
Ответить с цитированием
  #32  
Старый 09.11.2012, 15:36
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

Так я же говорю что так не получается. Там ведь нужно еще учитывать поле value в котором есть значение которое мне нужно.
Код:
Webbrowser1.getElementsByTagName('input',el,'type','radio');
дает мне только первый элемент типа радио. То есть ответ "Да" в первом вопросе. Или я не прав?
Ответить с цитированием
  #33  
Старый 09.11.2012, 15:40
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

И правда. я был не прав. он дает мне все элементы типа радио. в которых и содержатся ответы "Да".
Ответить с цитированием
  #34  
Старый 09.11.2012, 15:43
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

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

Да, так и есть, просто я не правильно выразился. Но теперь опять мне не понятно как сделать так что бы он выбирал только те где ответ да? Они ведь расположены так:
Да
Нет
Не знаю
Да
Нет
Не знаю

вот теперь надо как то настроить этот for...do что бы он отмечал только те что мне надо.
Код:
Webbrowser1.getElementsByTagName('input',el,'type','radio');
for  tip:=0+2 to 21 do
el[tip].click;
так он щелкает в первых пяти вопросах "Да". а потом на одном путается, и дальше ничего не делает!
Ответить с цитированием
  #36  
Старый 09.11.2012, 15:54
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от udachnik2
вот теперь надо как то настроить этот for...do что бы он отмечал только те что мне надо.
Код:
Webbrowser1.getElementsByTagName('input',el,'type','radio');
for  tip:=0+2 to 21 do
el[tip].click;
так он щелкает в первых пяти вопросах "Да". а потом на одном путается, и дальше ничего не делает!
Я так понял, что те элементы у которых "Да" имеют value="1"? Вот и проверяй если атрибут value равен "1", то вызывай для него click, иначе пропускай.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
udachnik2 (09.11.2012)
  #37  
Старый 09.11.2012, 16:00
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

Вах. Вот это да. Только я не знаю где у этих элементов лежит их value. Видел там GetAtribute. но при таком if el[tip].getAttribute('value')=1 then коде он говорит что не актуальны параметры.
Ответить с цитированием
  #38  
Старый 09.11.2012, 16:08
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от udachnik2
Вах. Вот это да. Только я не знаю где у этих элементов лежит их value. Видел там GetAtribute. но при таком if el[tip].getAttribute('value')=1 then коде он говорит что не актуальны параметры.
А у тебя разве не выскакивает подсказка, что у getAttribute 2 параметра, а не 1?

А вообще по значению value наверно не очень надёжно определять. Если нужно кликнуть только по тем, что "Да", то думаю лучше проверять, что текст там действительно "Да".
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
udachnik2 (09.11.2012)
  #39  
Старый 09.11.2012, 16:21
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Вот проверил. У меня вот так работает:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  el: Helems;
  i: Integer;
begin
  Webbrowser1.getElementsByTagName('input', el, 'type', 'radio');
  for i := Low(el) to High(el) do
    if AnsiSameText(Trim(el[i].parentElement.innerText), 'Да') then
      el[i].click;
end;
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
udachnik2 (09.11.2012)
  #40  
Старый 09.11.2012, 16:21
udachnik2 udachnik2 вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 47
Репутация: 10
По умолчанию

1. Определенно исключено изменение значения поля value на сервере. Я просто в этом уверен.
2. Спасибо за подсказку о подсказке. то есть должно быть так:
Код:
Webbrowser1.getElementsByTagName('input',el,'type','radio');
for  tip:=0 to 62 do
if el[tip].getAttribute('value', 1)=1 then
el[tip].click;
поставил и оно заработало.
Спасибо большое вам.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter