CoderZ.cc

Zurück   CoderZ.cc > Programmierung > .NET > Hilfe


 
Themen-Optionen Ansicht
01.02.2014, 07:58   #1
Skyter (Offline)
Coderz Mitglied
 
 
Registriert seit: 03.01.2025
Ort: Uknwon
Beiträge: 321
Thanks: 3
Thanked 4 Times in 4 Posts
Standard [C#]Website Button betätigen

Hey leute,

und zwar probiere ich ein Formular auszufüllen...

der HTML-Code:
http://www0.xup.in/exec/ximg.php?fid=11200601
hier mein Code
 private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http:///");
        }
        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.GetElementById("login").InvokeMember("click");//auch mit "submit" probiert...
        }
das ausfüllen der Felder klappt auch jedoch der Login button wird nicht betätigt...

bedanke mich für jede Hilfe im vorraus.
  Mit Zitat antworten
01.02.2014, 11:37   #2
Imperial (Offline)
Coderz Mitglied
 
 
Registriert seit: 17.08.2024
Beiträge: 60
Thanks: 10
Thanked 15 Times in 10 Posts
Standard

Ich arbeite zwar nicht mit C#, aber die Lösung mittels Webbrowser ist nicht die Feinste.
Warum dein Code nicht funktioniert kann ich jetzt nicht genau sagen.

Vielleicht liegt es daran, dass der Button keinen Namen bzw. Id hat und somit dein Webbrowser nicht weiß, welchen Button er drücken soll.

Die Beste Möglichkeit wäre es, das Formular selbst abzusenden.
Dann brauchst du keinen Button.
Wenn du Firefox nutzt, dann saug dir mal das Addon "HTTPFox".
Damit kannst du das Formular ganz einfach nachbauen.
Und du siehst, ob nicht irgendwo noch ein Security Key mitgesendet wird.
Was bei einem Login Formular sehr häufig der Fall ist.

Ich weiß, leider nicht sonderlich informativ, aber hier kann dir ein C# Entwickler besser helfen.
  Mit Zitat antworten
The Following User Says Thank You to Imperial For This Useful Post:
Skyter (01.02.2025)
01.02.2014, 12:30   #3
easysurfer (Offline)
Third Level User
 
 
Registriert seit: 31.10.2024
Beiträge: 430
Thanks: 69
Thanked 245 Times in 133 Posts
Standard

Generell rate ich vom WebBrowser Control ab, da:
  1. Das WebBrowser Control verwendet die IE6 Engine, das heist:
  • Exploits können ausgeführt werden
  • Seiten können zum Teil nicht richtig dargestellt werden
  • Sehr langsamer Seitenaufbau
  1. Das Laden von Bildern kostet ca. das 5 – 6 fache an Ladezeit
  2. Multithreading nicht möglich
  3. Keine Kontrolle über Abläufe was der Browser macht (auser die Document_Loaded Events)
  4. Schwer Formulare auszufülllen
(Entnommen aus einem Blogpost vor Ewigkeiten).

Die Alternative heißt HttpWebRequest. Damit kommunizierst Du direkt mit dem Server mit WebRequests, wie sie der Browser auch sendet. Und genügend Argumente hab ich ja oben genannt

Wenn Du es dennoch mit dem WebBrowser Control machen willst, dann hätte ich vielleicht auch eine Lösung:
Manchmal klappt das "Drücken" von dem Button nicht, also kannst Du dem IE Control sagen, dass er die Form direkt senden sollte. Hier mal ein Code, der alle Forms auf der Seite durchläuft und Absendet, musst Dir halt die richtige Raussuchen (hat ja leider keinen Namen/ID).
foreach (HtmlElement form in webBrowser1.Document.Forms)     form.InvokeMember("submit"); 
Alternativ mal den o.g. Code in das WebBrowser Event Completed eintragen, daran liegt es auch manchmal.

Viel Erfolg!
__________________
Gamehacking, Reversing and Security
  Mit Zitat antworten
The Following User Says Thank You to easysurfer For This Useful Post:
Skyter (01.02.2025)


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:48 Uhr.

Powered by vBulletin®
Copyright ©2008 - 2017
Template-Modifikationen durch TMS