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;
И как истинный тру кодер НЕпрограммист:"Должно работать" ;)