Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Вниз

Тупое нажатие на кнопку   Найти похожие ветки 

 
Григорий   (2006-10-19 17:40) [0]

Облазил кучу сайтов но так и не нашёл ответа на задачу.
А задача состоит в том что-бы нажать на кнопку "ОК" на сайте www.territory.ru

пробдывал так:

WebBrowser1.OleObject.Document.forms.item(0).elements.item(0).click;

и так:

procedure TForm1.Button1Click(Sender: TObject);
var
   ovElements: OleVariant;
   i: Integer;
 begin
   ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
   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 = "Recent Charges") then
      ovElements.item(i).Click;
 end;

В результате ничего. Прошу помощи


 
SpellCaster   (2006-10-19 18:58) [1]

Если кнопка всегда на одном и том же месте, посылай мышиный клик окну браузера.


 
Плохиш ©   (2006-10-19 19:20) [2]


> пробдывал так:
>
> WebBrowser1.OleObject.Document.forms.item(0).elements.item(0).
> click;

Видно кнопка не является 0м элементом

>       (ovElements.item(i).Value = "Recent Charges") then

Точно текст в кнопке такой?


 
Dmitrij_K   (2006-10-19 23:33) [3]

Рабочий код на работе есть, завтра напишу


 
Плохиш ©   (2006-10-20 01:28) [4]


> Dmitrij_K   (19.10.06 23:33) [3]
> Рабочий код на работе есть, завтра напишу

У него тоже рабочий. Я даже знаю откуда он его тупо скопировал ;-)


 
Григорий   (2006-10-20 10:00) [5]

Вот код этой кнопки в HTML:
<INPUT onfocus=this.blur()
                       type=image height=20 alt="" width=37
                       src="Он лайн игра ТЕРРИТОРИЯ .files/ok.gif"
                       border=0>

Пытался тупо нажимать на всё:
procedure TForm1.Button1Click(Sender: TObject);
var
  ovElements: OleVariant;
  i: Integer;
begin
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
  for i := 0 to (ovElements.Length - 1) do
   if (ovElements.item(i).tagName = "INPUT") then
     ovElements.item(i).Click;

но тоже без результатно.

С мышкой не подходит т.к. программа может быть свёрнутой.


 
Dmitrij_K   (2006-10-20 12:19) [6]

// нажатие на компонент
function WBClick(const aTagName,aTagParam,aParamValue:WideString):Boolean;
var
 j,k         : Integer;
 IDoc        : IHTMLDocument2;
 ITag        : IHTMLElement;
 ICollection : IHTMLElementCollection;
 p           : OleVariant;
begin
 Result := False;
 IDoc   := WB.GetDocument;
 if IDoc.all.tags(aTagName).QueryInterface(IHTMLElementCollection, ICollection)=S_OK then
 begin
   k := ICollection.length - 1;
   for j:=0 to k do
   begin
     if ICollection.item(j,0).QueryInterface(IHTMLElement, ITag)=S_OK then
     begin
       p := ITag.getAttribute(aTagParam, 0 or 2);
       if VarType(p)=varOleStr then
       begin
         if p=aParamValue then
         begin
           ITag.click;
           Application.ProcessMessages;
           Result := True;
           Break;
         end
       end
     end
   end
 end
end;

или
function WBClickbyName(const FieldName:WideString):Boolean;
var
 IDoc  : IHTMLDocument2;
 ITag  : IHTMLElement;
 IDisp : IDispatch;
begin
 Result := False;
 IDoc  := WB.GetDocument;
 IDisp := IDoc.all.item(FieldName,0);
 if (IDisp<>nil) and (IDisp.QueryInterface(IHTMLElement, ITag)=S_OK) then
 begin
   ITag.click;
   Application.ProcessMessages;
   Result := True;
   Break;
 end
end;

в твоем случае можно так
if WBClick("INPUT", "src", "Он лайн игра ТЕРРИТОРИЯ .files/ok.gif") then
 SHowmEssage("OK")


 
Dmitrij_K   (2006-10-20 12:22) [7]

и еще вместо
 IDoc  := WB.GetDocument;
 пиши
 if WebBrowser1.Document.QueryInterface(IHTMLDocument2, IDoc)=S_OK then

n.r. у меня не TWebBrowser а TEmbeddedWB


 
Григорий   (2006-10-21 11:12) [8]

большое спасибо Dmitrij_K. Всё работает на 5!!!


 
Григорий   (2006-10-21 12:46) [9]

Dmitrij_K подскажите какие данные нужно передать для вашей функции чтоб нажалась кнопка с таким html кодом:

<a href="#" class=b2 id="enter11795552" onclick="location.href="?sid=574bfecc54b008a68bd823d984048fdf&request_type=3&act ion=enter_request&request_id=1795552"; disableAllGroup(); return false;">  <nobr>в бой</nobr>  </a>


 
Dmitrij_K   (2006-10-21 16:02) [10]

WBClick("Имя тега", "имя параметра", "значение параметра")
WBClick("A", "id", "enter11795552")
если только ID всегда такой


 
Григорий   (2006-10-23 11:48) [11]

WBClick("A", "id", edit1.text)
узнаю id значение вручную и через edit ввожу. Результата нет.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.049 c
2-1173859942
iviom
2007-03-14 11:12
2007.04.08
Удаление символов из строки


1-1171348947
Damager
2007-02-13 09:42
2007.04.08
System Colors


2-1174163176
Игорек
2007-03-17 23:26
2007.04.08
Дескриптор


1-1171423401
GuV
2007-02-14 06:23
2007.04.08
Создание ComboBox с нуля


15-1173940554
Alkid
2007-03-15 09:35
2007.04.08
Правила русского языка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский