PDA

Просмотр полной версии : [Помогите!] Клик по кнопке (WebBrowser)


RamDigga
18.07.2014, 18:21
Кнопка :
<input type="hidden" name="item" value="1">
<input type="submit" value="Купить" style="height: 30px; margin-top:10px;">

Пытаюсь кликнуть :

ovElements := WebBrowser1.OleObject.Document.forms.item(0).eleme nts;
for i := 0 to (ovElements.Length - 1) do
if (ovElements.item(i).tagName = 'input') and
(ovElements.item(i).type = 'hidden') and
(ovElements.item(i).value = '1') then
ovElements.item(i).Click;

или

ovElements := WebBrowser1.OleObject.Document.forms.item(0).eleme nts;
for i := 0 to (ovElements.Length - 1) do
if (ovElements.item(i).tagName = 'input') and
(ovElements.item(i).type = 'submit') and
(ovElements.item(i).value = 'Купить') then
ovElements.item(i).Click;

Вылетает ошибка : [Ссылки могут видеть только зарегистрированные и активированные пользователи]

Fix.ME
18.07.2014, 18:29
RamDigga, кнопка только одна на странице ?

RamDigga
18.07.2014, 18:33
RamDigga, кнопка только одна на странице ?

Нет. С подобным кодом их 5.
<input type="hidden" name="item" value="1">

Это номер кнопки.

Fix.ME
18.07.2014, 18:38
<input type="hidden" name="item" value="1">
Так это же скрытый элемент 0_0
Может нужно эту нажать ?
<input type="submit" value="Купить" style="height: 30px; margin-top:10px;">
А лучше - киньте часть кода с кнопками.

Добавлено через 14 минут
Я тут задействовал свои экстрасенсорные способности и пришел к выводу:
1) у нас есть невидимые элементы с номерами итемов для каждой кнопки покупки
2) если так, то стоит найти hidden input с выбранным номером и дело в шляпе
3) после этого просто обратиться к следующему элементу массива
Реализация для данного задания:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
var
input:OleVariant; i:integer;
begin
input:=WebBrowser1.OleObject.document.all.tags('in put');
for i:=0 to input.length-1 do
if (input.item(i).type='hidden') and (input.item(i).value='1') then
begin
input.item(i+1).Click;
end;
end;
И как истинный тру кодер НЕпрограммист:"Должно работать" ;)

RamDigga
19.07.2014, 08:37
Добавлено через 14 минут
Я тут задействовал свои экстрасенсорные способности и пришел к выводу:
1) у нас есть невидимые элементы с номерами итемов для каждой кнопки покупки
2) если так, то стоит найти hidden input с выбранным номером и дело в шляпе
3) после этого просто обратиться к следующему элементу массива
Реализация для данного задания:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
var
input:OleVariant; i:integer;
begin
input:=WebBrowser1.OleObject.document.all.tags('in put');
for i:=0 to input.length-1 do
if (input.item(i).type='hidden') and (input.item(i).value='1') then
begin
input.item(i+1).Click;
end;
end;
И как истинный тру кодер НЕпрограммист:"Должно работать" ;)

Все равно член группы не найден :(

Добавлено через 6 минут

А лучше - киньте часть кода с кнопками.


<div class="fr-block">
<form action="" method="post">
<div class="cl-fr-lf">
<img src="/img/birds/green.png" />
</div>

<div class="cl-fr-rg" style="padding-left:20px;">
<div class="fr-te-gr-title"><b>Зеленая</b></div>
<div class="fr-te-gr">Плодовитость: <font color="#000000">60 в час</font></div>
<div class="fr-te-gr">Стоимость: <font color="#000000">1000 серебра</font></div>
<div class="fr-te-gr">Куплено: <font color="#000000">5 шт.</font></div>
<input type="hidden" name="item" value="1" />
<input type='submit' value='Купить' style='height: 30px; margin-top:10px;' />
</div>
</form>
</div>