![]() |
TWebBrowser - Auf Tabelle Klicken
Hallo zusammen!
Folgendes Problem: Ich möchte auf einen "Button" einer Webseite klicken. Dies ist jedoch kein eigentlicher "Input Button", sondern anscheinend auf einer Tabelle hinterlegte weiterleitung (ohne Link). Trotz suche langer Suche im Forum komme ich nicht wirklich weiter :( Hier mal ein auszug aus dem Script der Webseite:
Code:
Könnt Ihr mir mal einen Schubs in die richtige Richtung geben?
<TR>
<TD> <div class="bg_teaser" onmouseover="this.className='bg_teaser_md';" onmouseout="this.className='bg_teaser';" onmousedown="this.className='bg_teaser_md';" onmouseup="this.className='bg_teaser';" onclick="document.getElementById('siC').value='Inv';document.getElementById('siA').value='CSMRTSA';document.getElementById('sibA').value='';document.getElementById('siw').value='CSMRTSV';document.getElementById('sim').value='StartShift';document.MasterForm.submit();"> <table class="c_in" cellpadding="0" cellspacing="0"> <TR> <TD class="w100XC"><img src="files/startshift.gif" alt="" class="s_img40"></TD><TD>Schichtbeginn</TD><TD class="c_rightcell_4"><img src="files/pfeil-vor.gif" alt="" width="4px" height="8px"></TD> </TR> </table> </div> </TD> </TR> Danke schonmal! Gruß Torsten |
AW: TWebBrowser - Auf Tabelle Klicken
Im onClick wird zuletzt das masterForm submitted, ich nehme an es gibt ein <form> Element im Code, das eine URL auf dem Server anspricht.
Code:
Ich weiss aber nicht ob man aus Delphi heraus das submit dieses Forms auslösen kann.
onclick="document.getElementById('siebC').value='Inv';...;document.MasterForm.submit();"
|
AW: TWebBrowser - Auf Tabelle Klicken
Es gibt ein <Form> Element, allerdings ist da keine URL drin...
Code:
<form method="GET" name="MasterForm" action="">
<input id="siC" name="C" value="" type="hidden"><input name="Rqr" value="0" type="hidden"><input name="Nct" value="true" type="hidden"><input name="R" value="1-5423" type="hidden"><input id="sim" name="M" value="" type="hidden"><input id="sivw" name="V" value="" type="hidden"><input id="siKx" name="Kx" value="" type="hidden"><input id="siA" name="A" value="" type="hidden"><input name="Cnt" value="12" type="hidden"> |
AW: TWebBrowser - Auf Tabelle Klicken
Zitat:
Um den Button zu simulieren muss das Delphi Programm also erst einmal die gewünschten Werte in die versteckten Form Felder eintragen, und dann das submit des form im TWebbrowser auslösen. |
AW: TWebBrowser - Auf Tabelle Klicken
Viele HTML-Elemente (Buttons, Links,...) haben die Methode Click().
Da auf der Seite JavaScript verwendet wird, bleibt dies wohl die einzige (sinnvolle) Möglichkeit den Mausklick auszulösen. Die Frage ist jetzt nur wie man das richtige Element findet... Hier ist mal etwas ungetester Code:
Delphi-Quellcode:
var
teaser : OleVariant; begin teaser := document.getElementsByClassName('bg_teaser'); if not VarIsNull(teaser) then // falls die Class 'bg_teaser' nicht gefunden wurde, sollte man es auch noch mit // 'bg_teaser_md' versuchen // // getElementsByClassName() liefert wahrscheinlich eine Collection zurück // man muss noch herausfinden, wie man das 1. Element daraus ansprechen kann teaser.Click; end; |
AW: TWebBrowser - Auf Tabelle Klicken
Danke schonmal für die Antworten.
Wenn ich die Methode von SX2008 teste, bekomme ich bei der Ausführung folgende Fehlermeldung: "Die Methode 'getElementsByClassName' wird vom Automatisierungsobjekt nicht unterstützt." Liegt das am TWebBrowser oder an der Homepage? |
AW: TWebBrowser - Auf Tabelle Klicken
Ist das ganze denn über die Indy-Komponente Einfacher zu lösen??
Sehen muß ich das ganze Seite eigentlich nicht, sondern brauche nur eine Rückmeldung ob es ausgeführt wurde. Im Prinzip hab soll folgendes Ablaufen:
|
AW: TWebBrowser - Auf Tabelle Klicken
Zitat:
Die Methode wird nur von neueren Webbrowsern unterstützt. Aber es gibt auch noch andere Wege das Element innerhalb des DOM-Baums zu finden und dann "anzuklicken". Zitat:
Es ist möglich, die Daten auch ohne Javascript zu senden, aber dazu müsste man den Netzwerkverkehr aufzeichnen, genau analysieren und selbst nachbauen. Im IE die Taste F12 drücken und Aufzeichnung starten. |
AW: TWebBrowser - Auf Tabelle Klicken
Zitat:
Damit habe neue "URL´S" bekommen, die ich dann direkt aufrufen kann, somit komme ich schon weiter. Leider ist in den URLs noch der Benutzername als Variable drin - und diese Variable sehe ich erst, wenn ich mich Manuell einlogge und ne Aktion ausführe. So muß ich erst alle Benutzervariablen manuell ermitteln und sie dann in ne Datenbank Benutzername -> Variable einbauen, aber ich komme auf jeden Fall schonmal weiter. Gruß Torsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz