Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2009, 01:24   #1
nikola86
 
Регистрация: 13.11.2009
Сообщений: 7
По умолчанию обращение к элементу таблицы в WebBrowser

Доброе время суток. Подскажите пожалуйста как мне сделать нажатие на кнопку, если кнопка-элемент таблицы и у нее нет ни type ни value.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var form:olevariant;
f,i:Integer;
begin

for f:=0 to WebBrowser1.OleObject.Document.forms.Length-1 do begin
form:=WebBrowser1.OleObject.Document.forms.Item(f).elements;
for i:=0 to form.Length-1 do

if (form.item(i).type='button')
and
(form.item(i).Value = '1')
 then begin
form.item(i).click; 
end;
Это для нажатия на кнопку, а как мне сделать, если таблица в исходном тексте выглядит следующим образом:

<table cellspacing=1 cellpadding=0><form><tr><th id=c91 class=c>&nbsp;</th><th id=c92 class=c>&nbsp;</th><th id=c93 class=c>&nbsp;</th><th id=c94 class=c>&nbsp;</th><th id=c95 class=c>&nbsp;</th></tr><tr><th id=c81 class=c>&nbsp;</th><th id=c82 class=c>&nbsp;</th><th id=c83 class=c>&nbsp;</th><th id=c84 class=c>&nbsp;</th><th id=c85 class=c>&nbsp;</th></tr><tr><th id=c71 class=c>&nbsp;</th><th id=c72 class=c>&nbsp;</th><th id=c73 class=c>&nbsp;</th><th id=c74 class=c>&nbsp;</th><th id=c75 class=c>&nbsp;</th></tr><tr><th id=c61 class=c>&nbsp;</th><th id=c62 class=c>&nbsp;</th><th id=c63 class=c>&nbsp;</th><th id=c64 class=c>&nbsp;</th><th id=c65 class=c>&nbsp;</th></tr><tr><th id=c51 class=c>&nbsp;</th><th id=c52 class=c>&nbsp;</th><th id=c53 class=c>&nbsp;</th><th id=c54 class=c>&nbsp;</th><th id=c55 class=c>&nbsp;</th></tr><tr><th id=c41 class=c>&nbsp;</th><th id=c42 class=c>&nbsp;</th><th id=c43 class=c>&nbsp;</th><th id=c44 class=c>&nbsp;</th><th id=c45 class=c>&nbsp;</th></tr><tr><th id=c31 class=c>&nbsp;</th><th id=c32 class=c>&nbsp;</th><th id=c33 class=c>&nbsp;</th><th id=c34 class=c>&nbsp;</th><th id=c35 class=c>&nbsp;</th></tr><tr><th id=c21 class=c>&nbsp;</th><th id=c22 class=c>&nbsp;</th><th id=c23 class=c>&nbsp;</th><th id=c24 class=c>&nbsp;</th><th id=c25 class=c>&nbsp;</th></tr><tr><th id=c11 class=c>&nbsp;</th><th id=c12 class=c>&nbsp;</th><th id=c13 class=c>&nbsp;</th><th id=c14 class=c>&nbsp;</th><th id=c15 class=c>&nbsp;</th></tr><tr><th id=c01 class=c>&nbsp;</th><th id=c02 class=c>&nbsp;</th><th id=c03 class=c>&nbsp;</th><th id=c04 class=c>&nbsp;</th><th id=c05 class=c>&nbsp;</th></tr></form></table></td></tr></table></td><td width=50%><table cellspacing=1 cellpadding=1 bgcolor=#2E8E02><tr><td bgcolor=#BCDB8F background=image/image2.jpg>


мне нужно нажать на элемент первого ряда(с01-с05), на какой именно-определить рандомом. Подскажите, как это реализовать.

Последний раз редактировалось Stilet; 13.11.2009 в 08:57.
nikola86 вне форума Ответить с цитированием
Старый 13.11.2009, 08:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что-то я не сильно понял что тее надо...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.11.2009, 10:52   #3
nikola86
 
Регистрация: 13.11.2009
Сообщений: 7
По умолчанию

Мне нужно нажать на ячейку таблицы, которая представлена выше-только я не знаю как к ней обратиться-в исходном коде у нее нет name, только id и class. Надеюсь сейчас понятно написал.
Изображения
Тип файла: jpg Точечный рисунок (2).JPG (11.2 Кб, 92 просмотров)
nikola86 вне форума Ответить с цитированием
Старый 13.11.2009, 11:23   #4
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

распарсь таблицу в массив и проблема решена
Usov вне форума Ответить с цитированием
Старый 13.11.2009, 11:28   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

При чем тут парсинг???
Ему нужно имитировать нажатие на ячейку <th>...</th>
В исходнике странички такое событие не предусмотрено, нужно с помощью внешнего воздействия.

Последний раз редактировалось mihali4; 13.11.2009 в 21:26.
mihali4 вне форума Ответить с цитированием
Старый 13.11.2009, 11:34   #6
mosq
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 90
По умолчанию

все просто, в одну строчку
Код:
Webbrowser1.OleObject.Document.GetElementByID('knopka_id').click;
соответственно, вместо "knopka_id" указываешь ID того элемента, который кликать
mosq вне форума Ответить с цитированием
Старый 13.11.2009, 11:54   #7
nikola86
 
Регистрация: 13.11.2009
Сообщений: 7
По умолчанию

Как это вставить, подскажите, пожалуйста.
Сначала выполняется это:
PHP код:
procedure TForm1.Button1Click(SenderTObject);
var 
form:olevariant;
f,i:Integer;
begin

for f:=0 to WebBrowser1.OleObject.Document.forms.Length-do begin
form
:=WebBrowser1.OleObject.Document.forms.Item(f).elements;
for 
i:=0 to form.Length-do

if (
form.item(i).type='button')
and
(
form.item(i).Value '0.1')
 
then begin
form
.item(i).click

  
end;
end
а затем это:
PHP код:
Webbrowser1.OleObject.Document.GetElementByID('с01').click
Как внести правильно эту строку в мой код?

И еще: как вывести в виде сообщения значение 0.20, если исходный код такой:
Код HTML:
</th><th id=zcount width=50%>0.20</th>

Последний раз редактировалось nikola86; 13.11.2009 в 12:21.
nikola86 вне форума Ответить с цитированием
Старый 13.11.2009, 20:41   #8
nikola86
 
Регистрация: 13.11.2009
Сообщений: 7
По умолчанию

как правильно внести эту строку в код выше?
PHP код:
Webbrowser1.OleObject.Document.GetElementByID('с01').click
nikola86 вне форума Ответить с цитированием
Старый 13.11.2009, 21:39   #9
mosq
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 90
По умолчанию

не совсем понял смысл этого
Код:
if (form.item(i).type='button') 
and 
(form.item(i).Value = '0.1') 
 then begin 
form.item(i).click;
что этим кодом выявляется?
mosq вне форума Ответить с цитированием
Старый 13.11.2009, 22:17   #10
nikola86
 
Регистрация: 13.11.2009
Сообщений: 7
По умолчанию

этот код нажимает на кнопку, мне нужно модифицировать его, чтобы нажималось еще на ячейку таблицы. Видимо придется делать через координаты.
nikola86 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить массив B, присвоив его k-му элементу значение 0, если все элементы [Pascal] М@лышка Помощь студентам 10 12.10.2009 23:29
STL обращение к элементу list sht0p0r Общие вопросы C/C++ 1 05.07.2009 21:22
Обращение из формы в dll к элементу главной формы (delphi) a_n_n_a Помощь студентам 3 10.05.2009 04:00
одномерный массив, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца ruslan09-93 Помощь студентам 2 15.11.2008 20:26
Вывод списка выбранных полей, относящихся к элементу DBCheckListBox Cvetok Помощь студентам 0 07.06.2008 16:20