Submit na stronie

0

Jak w temacie co zrobić żeby w webbrowserze bot kliknął na submita z określonym valuem... [wstyd]

0

jesli masz metode get to robisz Webbrowser1.Navigate blah.pl/skrypt.php?zmienna=zz&zmienna2=yy
jesli post to nie pamietam ale wystarczylo poszukac..

0

W tym problem ze to jest post ;) a nie get....

P.S
Myślisz że nie szukałem ?
Tą strone ktoś dawał niby za rozwiązeni problemu ale ona nie działa http://4programmers.net/faq.php?id=236

i znalazłem jeszcze to
http://www.swissdelphicenter.ch/torry/showcode.php?id=1645
ale to jest na zdjęcie więc mi się nie przyda
szukałem w faq i nie znalazłem ...;(

0

Nie prosciej naglowki spreparowac samemu? Rzut okiem na RFC tylko.

0

Krótko :
nie prościej...

Ludzie wiecie jak to zrobić, nie mówcie tylko że delphi nie może poradzić sobie z submitem na stronie ;)

0

o to drugie tylko że to nie działa ;(...
Tylko chodzi mi oto z submitem, czyli logowaniem ...
doc := webbrowser1.Documnt as IHTMLDocument2;
klik:= doc.all.item('Submit',0) as IHTMLElemnent;
p.s
to sam znalazłem....

0
uses MSHTML;

var
 dwww:IHTMLdocument3;
 submit:IHTMLInputElement;
begin
 dwww:=WebBrowser1.Document as IHTMLDocument3;
 if assigned(dwww) then
  submit:=dwww.GetElementByName('NazwaSubmita').Item(0,'') as IHTMLInputElement;
 if assigned(submit) then
  submit.form.submit;
end;

Mogą być błędy bo pisałem bez Delphi, ale powinieneś dojść do tego.

BTW. również problem z modułem MSHTML. Jak ktoś mógł by pomóc :)
http://4programmers.net/Forum/viewtopic.php?id=114761

0

W tym problem że ten submit nie ma nazwy tylko value ;(

jest jakieś na to rozwiązanie ?!....

Bardzo mi na tym zależy... i nie miejcie mnie za nooba co nie szuka zanim coś pisze....
przeszukałem sporo.... znalazłem coś takiego do sprawdzania value...., do klikania Submita, ale jako obrazka.... i to też z 'name'.... :(
Na tym forum znalazłem jeden post z czymś co trzeba było by pokombinować ;(

var
klik: IHTMLElement;
doc: IHTMLdocument2;
begin
doc := webbrowser1.Documnt as IHTMLDocument2;
klik:= doc.all.item('Submit',0) as IHTMLElement;
klik.click;
end;

Ale jakoś nie chce działać chociaż na stronie jest tylko jeden submit.... :( może cos z tą cyfrą 0 by trzebabylo pokominowac ale nie wiem jak ;(

Z góry dzięki....

0

To chociaż może ten submit ma id?

0

Na złość nie ma ID :()....

Trzymaj źródełko ;-) może coś wykombinujesz ;D

<input value="Ok" type="submit">
0

To kurcze zna ktoś rozwiązanie...
ja jak pisałem w autoicie to jakoś za pomoca kolekcji to robiełem

$oForm = _IEFormGetCollection ($oIE, 0)	 
_IEFormSubmit ($oForm) 

i mi działało...
a w delphi nie wiem jak dostać się do jakiejś kolekcji ;(

0
/ If there is only one button, you can do something like:

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

// This will do a click on the first element of the first <FORM>, where an
// element is either <INPUT>, <SELECT> or <TEXTAREA>.


// If there is more than one button, you can do something like:

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;

z Torry'ego

proste ?

mozesz wyciac te tagname, zostawic samo przyrownywanie do submit (przycisk) i value jak chciales, a jezeli na stronie jest tylko jeden przycisk formy to kod z samej gory...

0

Dzięki ale jakoś nie chce działać :(...
nie wiem czemu...
ustawiłem jeden przycisk na navigate.. zeby strone tą co che ładował a drugi na ten kod
i próbowałem obydwa... żaden nie działa
gdy ładuje strone i klikam na drugi przycisk to nic się nie dzieje ;(

0

Dzięki wszystkim za pomoc <ort>nareście </ort>działa ;) :)

Ja szukałem pod hasłem Submit a nie button :( debil ze mnie...

I uważajcie na
(ovElements.item(i).type = 'SUBMIT')
Bo tu jest dużymi literami a <ort>umnie </ort>było małymi dlatego nie działało ;)

dzięki jeszcze raz

0

to najlepiej zrob sobie AnsiLowerCase czy jakos tak (nie mam Delphi wlaczonego) i po sprawie ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1