![]() |
Moin Jan,
das Problem mit den Exceptions in der IDE lässt sich abschalten: Tools\Debugger Optionen\Sprach Exceptions Bei Delphi Exceptions stoppen deaktivieren. |
aahh gut *einstellundzufriedensei*
bb Jan |
Hi Jan
das Problem das die site noch nicht geladen ist hatte ich auch schon, Ich hab das mit der Abfrage :
Code:
dann gelöst
if WebBrowser2.LocationURL=sms_Site then ...
Das ganze steht bei mir auch noch in : ondocumentcomplete ! Aber mein Problem ist jetzt:
Code:
Dieser Code: Mein Problem ist die Übergabe von sms_full_Number_field einem String in dem der Feldname gespeichert ist! wenn ich den Namen in '****' dareinschreibe funktioniert es aber so mit der Variable nicht!
WebBrowser2.OleObject.document.forms.item(0).elements.item(sms_full_Number_field).value:=sms_full_Number;
Aber ich muss das bei mir mit einer Variable machen! sonst kann ich für jede site eine eigene Prozedure schreiben und das will ich nicht! Oder z.B beim einloggen: So gehts:
Code:
So nicht:
WebBrowser2.OleObject.document.forms.item(0).elements.item('frm_passwd').value:=login_pass;
Code:
masters001
WebBrowser2.OleObject.document.forms.item(0).elements.item(login_pass_field).value:=login_pass;
|
Hallo masters001,
folgendes funktioniert bei mir einwandfrei:
Code:
Ich hab' ich mal für dich umgesetzt, und logischerweise klappt das auch.
procedure tform1.login;
var test:string; Webform : variant ; begin test:='password'; form1.WebBrowser1.OleObject.Document.Frames.item ('main').Document.Forms.item(0).Elements.item('username').value := labelededit1.text ; form1.WebBrowser1.OleObject.Document.Frames.item('main').Document.Forms.item(0).Elements.item(test).value := labelededit2.text ; WebForm := form1.WebBrowser1.OleObject.Document.Frames.item('main').Document.Forms.item(0); WebForm.submit; end; probier Du das auch mal so aus! Anscheinend hast du einfach den falschen string gespeichert. Gruß Jan |
Zitat:
Hi masters001, Das klappt bei mir auch, aber da ich auf einer Seite mit frames arbeite, steh ich dumm da, weil folgendes:
Code:
nicht klappt.
showmessage(form1.WebBrowser1.OleObject.Document.Frames.item('main').locationURL);
Irgendwelche Vorschläge wie das mit frames klappt? bb Jan |
Kannst du nicht einfach nur diesen Frame (main) im WebBrowser laden?
|
Zitat:
Nein, leider nicht, weil es nen befehl gibt, mit dem man kontrollieren kann von wo ein Frame geladen wurde, und da das nicht unbedingt jeder wissen soll kommt das nicht gut. |
Ich hab jetzt ein Formular in dem 2 Submit Buttons sind!
Wenn ich mein Prog ausführe drückt es immer auf den falschen! Wie kann ich erreichen das immer der richtige gedrückt wird? Kann ich irgendwie durch die namen der buttons darauf zugreifen? Vielen Dank |
Hallo masters001,
also das hab ich ja noch nie gesehen, dass ein Formular 2 submitbuttons hat, worin sollen die sich denn unterscheiden? Im Grunde ist ein submitbutton doch nur zum Abschicken eines Formulars, die Bedingungen werden in anderen Inputs und im Formularheader angegeben. Es gibt da noch einen reset button zu Formularen, aber ich denke nicht, dass du den meinst. Versuch das Ganze mal mit dem klick() Befehl, den hab ich mal irgendwo gesehen, kann dir jetzt aber niocht genau sagen wie das läuft, schau mal auf ![]() Gruß Jan |
Hi ich poste hier einfach nochmal den QT zu meinem Problem:
Code:
Kann man den Button der gedrückt werden soll nicht über sein Value definieren?
<form action="/sms-versenden.html" enctype="x-www-form-urlencoded" method="post" name="form1">
<input type="hidden" name="nr" value="49160§98645070"> <input type="hidden" name="smstype" value="sms"> <input type="hidden" name="werbung" value="0"> <input type="hidden" name="msg" value="SDGCSG+FDSH+GFDS"> <input type="submit" name="submit" value="<- Zurück"> </form> </td> <td> <form action="/sms-vorschau.html" enctype="x-www-form-urlencoded" method="post" name="form1"> <input type="hidden" name="number" value="4916098645070"> <input type="hidden" name="sender" value="004916091533611"> <input type="hidden" name="smstype" value="sms"> <input type="hidden" name="msg" value="SDGCSG+FDSH+GFDS"> <input type="hidden" name="eintrag" value="49170§§§§"> <input type="hidden" name="netz" value="49160"> <input type="hidden" name="nummer" value="98645070"> <input type="hidden" name="werbung" value="0"> <input type="hidden" name="var_a" value="sms_ohne_ad"> <input type="submit" name="submit" value="SMS jetzt verschicken"> </form> Also das ich den submit Button drücke, hier mit dem Value: "SMS jetzt verschicken" masters001 |
Hallo masters001,
wenn es dir darum geht zu unterscheiden welchen submitbutton du drückst, dann geht das ganz einfach, indem du einen anderen Form ansprinchst, in deinem Falle zum Beispiel hieße das dann:
Code:
Gruß
form1.WebBrowser1.OleObject.Document.Forms.item(0).submit; {verschickt den 1. form}
//oder: form1.WebBrowser1.OleObject.Document.Forms.item(1).submit; {verschickt den 2. form} Jan |
Hi Jan
Vielen Dank funktioniert perfekt! Ich kannte das bis jetzt nur so das man den namen des Forms als string übergibt. Ich hab noch ne Frage hierzu: Ist es möglich das man die Usernamen-Passwörter direkt an den Host schickt also die Site nicht erst laden muss. Quasi einen WebBrowser simulieren der mit dem Host kommuniziert? |
Hallo masters001,
Du kannst dir, ohne die Loginseite geladen haben zu müssen einfach einen Link aus dem Formular zusammenbasteln, schau dir doch dazu einfach mal einen früheren Beitrag von mir in genau diesem thread hier an. ![]() Hoffe das hilft Jan |
Hallo
Ich meinte damit eigentlich eine Methode um das mit delphi über winsock zu machen: ![]() Hier ist ein Beispiel wie man e-mails per winsock verschickt allerdings mit vb. Ich suche noch ein tut oder ein Beispielcode wie man das mit delphi und websiten machen kann! Da es zu lange dauert wenn sich immer im WebBrowser die Site laden muss! Vielen dank masters001 |
Hallo masters001,
Wo soll denn bitte ger Geschwindigkeitsvorteil herkommen, wenn du das ganze ohne twebbrowser machst? Eine Antwortseite wirst du ja immer bekommen, oder irre ich da? und diese Antwortseite runterzuladen oder in den Twebbrowser zu laden dürfte keinen großen Unterschied machen. Den Twebbrowser kannst du ja auch invisible stellen. BB Jan |
Ist es vielleicht auch möglich das Webseitenausfüllen mit der NMHTTP Komponente zu machen? Oder wozu ist diese Komponente eigentlich gut. Wenn ich das richtig sehe zeigt die ja kein Browserfenstern an!
masters001 |
Hallo, ich möchte nun auf einen Button drücken der eigentlich ein Bild ist! Also hab ich folgenden Code gefunden:
Code:
Jetzt liegt aber der Button auf den ich klicken möchte in einem speziellen Frame:
WebDoc := WebBrowser1.Document as HTMLDocument;
WebImage := WebDoc.images.item(0, 0) as HTMLImg; WebImage.click; Ich hab das jetzt mal so versucht:
Code:
Leider funktioniert dieser Code jedoch nicht! Kann mir vielleicht jemand den Fehler im Code sagen? Oder ist es möglich über WebDoc direkt auf den Frame zuzugreifen?
WebImage := WebBrowser1.OleObject.Document.Frames.item('NavLinks').document.images.item(0, 0) as HTMLImg;
WebImage.click Ich hab das mal so:
Code:
versucht aber das funktioniert leider auch nicht!
WebDoc := WebBrowser1.Document.Frames.item('NavLinks') as HTMLDocument;
WebImage := WebDoc.images.item(0, 0) as HTMLImg; WebImage.click; Vielen Dank masters001 |
twebbrowser checkbox füllen
hallo
wie kann man beim twebbrowser checkboxen aktivieren und oder radiobuttons einer website ausfüllen??? und warum kann ich keinen text aus dem twebbrowser kopieren und irgendwoanders einfügen???? mfg bart |
zum beispiel:
Code:
if iInputElement.Get_value='18'
then iInputElement.checked:=true ; |
danke für die hilfe kenn mich aber leider noch ned so gut mit delphi aus.
wofür steht das input.element??? wo könnt ich nähere information zu oleobject finden???? danke pwb bart_home |
du musst das ganze in
Code:
und in
uses
mshtml;
Code:
informationen findest du hier: (ist aber nicht so einfach mit dem umsetzten)
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant); var iDoc: IHtmlDocument2; i: integer; ov: OleVariant; iDisp: IDispatch; iColl: IHTMLElementCollection; iInputElement: IHTMLInputElement; begin WebBrowser1.ControlInterface.Document.QueryInterface(IHtmlDocument2, iDoc); if not assigned(iDoc) then begin ShowMessage('Keine Webseite geladen'); Exit; end; ov := 'INPUT'; IDisp := iDoc.all.tags(ov); if assigned(IDisp) then begin IDisp.QueryInterface(IHTMLElementCollection, iColl); if assigned(iColl) then begin for i := 1 to iColl.Get_length do begin iDisp := iColl.item(pred(i), 0); iDisp.QueryInterface(IHTMLInputElement, iInputElement); if assigned(iInputElement) then begin if iInputElement.Get_value='18' then iInputElement.checked:=true ; end; end; end; end; end; ![]() und in vielen foren... ich suche auch immer wie ein verückter :) |
bei yahoo gibt es auch eine sehr gute group
delphi-webbrowser-subscribe@yahoogroups.com |
hallo
danke für die hilfe tschau bart_home |
Ist es eigentlich auch möglich eine Javascript Variable im T-WebBrowser zu ändern? Denn in diesem Javascript gibt es ein onkeydown welches eine funktion aufruft die zählt wieviele zeichen noch frei sind. Da aber keine taste gedrückt wird wenn die site mit einem script ausgefüllt wird, kommt es zu einem error da die variable nicht mit einem Wert belegt ist.
Oder kann ich den cursor automatisch in das MessageFeld positionieren und automatisch z.B. zum Schluss die Leertaste drücken lassen, um die Variable zu belegen? 1.) kann man Javascript Variablen automatisch mit Werten belegen? 2.) Wie bringe ich den Cursor in ein Bestimmtes html objekt im TWEbBrowser? Vielen Dank masters001 |
Zitat:
Das sagt mir leider auch nicht viel! Könntest du das näher beschreiben? Mfg Caption :D |
es wird nach einem inputelement mit der value 18 gesucht, wenn das dann da ist wird's gecheckt, oder habe ich deine frage falsch verstanden? :spin:
|
Zitat:
Meine nächste Frage: Wie kann ich Dropdown bzw. Comboboxes in einem Internet-Formular ausfüllen? Mfg Caption :D |
|
Zitat:
Code:
Error 404!
The file that you were trying to access cannot be found on this server.
Mfg Caption :D Edit: Jetzt funzts! THX! |
Nochmal danke für dein Beispiel-Project, aber ich kapier das nicht ganz!
Ich möchte die Dropdown Felder so änlich ausfüllen:
Code:
Allerdings funktioniert das nur bei HTML-Quellcode der folgendermaßen aufgebaut ist:
WebBrowser1.OleObject.document.forms.item(0).elements.item('name').value:='.......';
Code:
Aber wenn der Dropdown-Source so aussieht geht nichts mehr:
<select name="name">
<option selected value="Select Your Category">Select Your Category</option> <option value="internet">Internet</option> <option value="finance">Finance</option> <option value="entertainment">Entertainment</option> <option value="shopping">Shopping</option> <option value="gambling">Gambling</option> <option value="games">Games</option> </select>
Code:
Wie kann ich ^^solche^^ Dropdownboxes ausfüllen?
<select name="name">
<option selected>Select Name</option> <option>Martin</option> <option>Patrick</option> <option>Peter</option> <option>Eli</option> </select> Mfg Caption :D |
Code:
aber wenn du das so machst übergibst du keine values...und darum geht es doch, oder nicht?
<select name="name">
<option selected>Select Name</option> <option>Martin</option> <option>Patrick</option> <option>Peter</option> <option>Eli</option> </select> |
Zitat:
Ich muss also die Options in der Dropdown-Box irgendwie anders auswählen! Aber wie???? Mfg Caption :D |
warum nimmst du dann überhaupt ein listmenü?
mal eine frage, was macht es für einen sinn ein listmenü ohne value abzusckicken? sorry, ich kann dir nicht sagen wie's ohne value geht... |
eine sache fällt mir noch dazu ein...
du könntest wenn es um eine seite im www geht: a) diese erst in ein memo laden b) mittels stringreplace deine daten in das list/menü "eintragen" c) das formular submitten... nur so als idee :spin: |
Zitat:
Aber es muss doch anders auch gehen! z.b. so irgendwie:
Code:
Wobei ^^das^^ nicht funzt!
WebBrowser1.OleObject.document.forms.item(0).elements.item('name').option(1)
Mfg Caption :D |
Hallo alle zusammen.
Ich hab da immer noch ein Problem, auch nach dem ich alle Eure Varianten ausprobiert habe und selber rumgespielt habe!!! Hier mal der Quellcode der Seite:
Code:
Es handelt sich um PHP & HTML, wie es wohl unschwer zu erkennen ist :wink:.
<table width="100%" border="0" bgcolor="<? print $T_tabelle; ?>";
<tr> <td>[b]<div align="center"><? print $ub_font; ?>[b]<? print $MSG_6007; ?></div>[/b]</td> </tr> </table> <FORM NAME="login" ACTION="main.php" METHOD="post"> <input type="hidden" name="action" value="login"> <TABLE width="100%" border="2" cellspacing="0" cellpadding="3" bordercolor="<? print $T_tabelle; ?>"> <TR valign="top"> <TD height="16" width="16%"> <FONT FACE=Courier,Courier New SIZE=-3>Username: </TD> <TD height="16" width="84%"> <INPUT type="text" name="nickH" size="8" MAXLENGTH="20" value="<?echo$nickH;?>"> </TD> </TR> <TR valign="top" > <TD height="16" width="16%"> <FONT FACE=Courier,Courier New SIZE=-3 >Password: </TD> <TD height="16" width="84%"> <INPUT type="password" name="password" size="8" MAXLENGTH="20"> </TD> </TR> <TR valign="top"> <TD height="16" colspan="2"><FONT FACE=Verdana,Arial,Helvetica SIZE=1> [url="my_account_login.php"]Passwort vergessen?[/url] </TD> </TR> <TR valign="top"> <TD height="16" width="16%"> </TD> <TD height="16" width="84%"> <INPUT type="submit" value="Einlogen!"> </TD> </TR> </TABLE> </FORM> <table width="100%" border="0"> <tr> <td>[b]<center>Sie sind nicht eingeloggt[/b]</font> </center></td> </tr> </table> Nun ist mein Prob, das es wie schon oben gesagt mit Euren Versionen nicht funzt :cry: What is wrong and what do i have to do? |
Re: formularfelder einer website ausfülle?
Hallo,
Ich habe diesbezüglich auch noch eine Frage. Es wurde in diesem Beitrag bereits darauf eingegangen was man bei einer Internetseite mit Frames schreiben muss um eine Aktion durchzuführen:
Delphi-Quellcode:
Dies stand irgendwo auf Seite 2 ...
if WebBrowser1.OleObject.Document.Frames.item('MAIN').Document then
begin ... end; Meine Frage bezieht sich dahingehend was man bei bei einer normalen Webseite ohne Frames beachten muss wenn man zum Beispiel eine Combobox ausblenden möchte, nachdem eine bestimmte Webseite aufgerufen wurde. Nochmal vereinfacht: Webbrowser Seite 1 wird aufgerufen Formular wird mit Hilfe von Werten aus einer INI unter zur Hilfenahme einer Combobox ausgefüllt der Webbrowser ruft eine weitere Seite auf JETZT soll die Combobox ausgeblendet werden - nur wie ? Wäre für einen Rat dankbar Cluxie |
Re: formularfelder einer website ausfülle?
meine Prozedur schaut im Übrigen so aus
Delphi-Quellcode:
Wie gesagt, dieser Code tut nicht das was er soll und ich bin mir ziemlich sicher, daß es daran liegt, das er falsch ist *g*
procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant); begin if WebBrowser1.LocationName = ('...hier steht die meine url...') then Spielerkonten_combobox.visible:=false; end; |
Re: formularfelder einer website ausfülle?
Hat sich erledigt , LocationURL nicht Name :)
|
Re: formularfelder einer website ausfülle?
Moin,
ich hab da jetzt ein kleines Problem: Ich möchte gern auf das Webmenü meines Routers zugreifen, also hab ich einfach euren Code aus diesem Thread verwendet. Das funktioniert auch wunderbar, dass Passwortfeld wird wie erwartet korrekt ausgefüllt, leider kommt danach immer eine Exception. Weiß jemand warum ? :gruebel:
Delphi-Quellcode:
Danke schonmal ;)
procedure TForm1.BitBtn1Click(Sender: TObject);
begin Webbrowser1.Navigate('http://192.168.2.1/start_passwort.htm'); end; procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); var error: String; begin try WebBrowser1.OleObject.Document.Frames.item('ppst').Document.Forms.item('PWD').Elements.item('Pass').value := '0000' except error := 'Fehler'; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 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