2016-04-13 8 views
0

Ich versuche ein Programm zu erstellen, das sich über C# auf einer Website anmelden kann, aber auch den Standardbrowser verwendet.Melden Sie sich mit Standardbrowser in einer Webseite an C#

Momentan funktioniert es mit der In-Form-Browser-Fein, aber ich kann den Code nicht finden, um es anzupassen, um in einem tatsächlichen Browser zu arbeiten.

Jedes Feedback ist willkommen,

using System; 
using System.Windows.Forms; 
using System.Diagnostics; 

namespace PortalLogin2 
{ 
    public partial class Form1 : Form 
    { 

     bool mHooked; 

     public Form1() 
     { 
      InitializeComponent(); 
      webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted; 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      string input = "https://en-gb.facebook.com/"; 
      Process.Start(input); 
     } 
     void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
     { 
      if (mHooked) return; 

      HtmlDocument doc = webBrowser1.Document; 

      HtmlElement username = doc.GetElementById("email"); 
      HtmlElement password = doc.GetElementById("pass"); 
      HtmlElement submit = doc.GetElementById("u_0_"); 

      string txtUser = "insert username here"; 
      string txtPass = "insert password here"; 
      doc.GetElementById("email").InnerText = txtUser.ToString(); 
      doc.GetElementById("pass").InnerText = txtPass.ToString(); 

      submit.InvokeMember("click"); 
      mHooked = true; 
     } 

    } 

} 

Antwort

0

Versuchen www.seleniumhq.org

Selen Browser automatisiert. Das ist es! Was Sie mit dieser Kraft machen, ist ganz Ihnen überlassen. In erster Linie dient es zur Automatisierung von Web-Applikationen zu Testzwecken, ist aber sicherlich nicht darauf beschränkt. Langweilige Web-basierte Administrationsaufgaben können (und sollten!) Auch automatisiert werden.

Es hat Unterstützung für C# und andere Sprachen.

+0

Der Code wird wahrscheinlich eine Menge Leute ausgerollt werden, so würde ich diesen Code anpassen müssen, bis es funktioniert . Trotzdem danke –

0

Es ist möglich, Internet Explorer zu automatisieren, indem Sie die COM-Verweise "Microsoft Internet Controls" und "Microsoft HTML Object Library" hinzufügen.

Hier ist ein funktionierendes Beispiel das Feld „E-Mail“ auf Facebook zu füllen:

var ie = new SHDocVw.InternetExplorer(); 
ie.Visible = true; 

// once the page is loaded 
ie.DocumentComplete += (object pDisp, ref object URL) => { 
    // get the document 
    mshtml.HTMLDocument doc = (mshtml.HTMLDocument)(object)ie.Document; 

    // set the email field 
    mshtml.IHTMLElement email = doc.getElementById("email"); 
    email.setAttribute("value", "[email protected]"); 
}; 

// naviagte to the page 
ie.Navigate("https://en-gb.facebook.com/"); 

// wait indefinitely without blocking the current thread 
new AutoResetEvent(false).WaitOne(); 
Verwandte Themen