Come Si fa a Impostare il Valore dell’Elemento di Input a livello di programmazione Tramite CSharp?

Ciao
Sto cercando di automatizzare il mio IE per accedere a un sito web, ma il problema è che gli elementi di input non si dispone di un HTML attributo ID! Per esempio:

<input type="text" name="user" size="15" value="">

Come si programma in C# per inserire il testo in questa casella di testo?

Grazie

InformationsquelleAutor Nabisco_DING | 2010-10-21

5 Replies
  1. 6

    Aggiungere i seguenti attributi per il tag input: runat="server" e id="someId"

    <input id="user" type="text" size="15" runat="server">

    Quindi lato server:

    user.Text = "sample text";

    Allora si può fare qualcosa di simile:

    foreach (Control c in Page.Controls)
    {
        TextBox t = c as TextBox;
    
        if (t != null)
        {
            t.Text = "sample text";
        }
    }

    Ma non sono sicuro che funzionerà senza il runat="server" attributo

    grazie, ma non ho accesso per modificare il codice HTML sul sito 🙁
    vedere la mia modifica il numero uno
    Penso che sta solo cercando di inviare a un altro sito web che non sono sotto il suo controllo
    grazie vorrei provare questo fuori e tornare a voi stasera!!

    InformationsquelleAutor bevacqua

  2. 4

    So che questo è un po ‘ tardi, ma qui è un sostituto per il metodo jquery.

    Presumo che con IE si intende il controllo webbrowser.
    Una volta che il documento, si può passare attraverso l’ingresso di elementi.

    Qualcosa di simile


    HtmlElementCollection inputs = browser.Document.GetElementsByTagName("input");

    Quindi è un ciclo ciascuno degli ingressi. È possibile controllare l’inserimento del nome con

    input.GetAttribute("name").Equals("user")

    Di inserire un valore per il campo dovrebbe essere fatto con


    input.SetAttribute("value", "MyUserName");

    InformationsquelleAutor Cubicle

  3. 2

    Credo che questo non è “fare a livello di programmazione con C#”, ma si potrebbe jQuerify la pagina, quindi eseguire un codice javascript personalizzato in seguito, per manipolare il valore del controllo. Se si utilizza WebBrowser, si può chiamare il seguente metodo per inserire gli script.

    string script = "script text";
    WebBrowser.Navigate(script);

    jQuerify codice

    var s=document.createElement('script');
    s.setAttribute('src','http://jquery.com/src/jquery-latest.js');
    document.getElementsByTagName('body')[0].appendChild(s);

    Codice personalizzato

    $(document).ready(function(){$('input[type="text"][name="user"]').val('FooBar')});

    InformationsquelleAutor sshow

  4. 2

    Forse questo può aiutare:-

    • NB : anche guardare http://msdn.microsoft.com/en-us/library/2te2y1x6.aspx
      http://msdn.microsoft.com/en-us/library/system.web.ui.htmltextwriter.aspx
      http://social.msdn.microsoft.com/Search/en-US/?query=mshtml%20tutorial&ac=1

    • Creare un nuovo progetto come un’applicazione Windows form del progetto,

    • Aggiungere riferimenti di MSHTML ie di Microsoft HTML Object Library plus SHDocVw ie di Microsoft Internet Controls,

    • Creare una funzione con il corpo un po ‘ come e legati a qualche cosa come un evento click del pulsante:

              /*INTERNET EXPLORER's OBJECT*/
              SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();
      ie.Navigate("http://www.example.com/entry"); /*GO TO EXAMPLE.COM*/
              /*WAIT UNTIL THE BROWSER IS READY AND COMPLETELY LOADED*/
      while (ie.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE) 
              {
                 Application.DoEvents();
              }
              mshtml.HTMLDocument doc = ie.Document;
              while (doc.readyState != "complete")
              {
                 Application.DoEvents();
              }
      /*GET ALL THE INPUT ELEMETS IN A COLLECTION*/
      MSHTML.IHTMLElementCollection collection=
              doc.getElementsByTagName("INPUT");
              foreach (mshtml.IHTMLElement elem in collection)
              {
                if (elem.getAttribute("name") != null)
                  {
                    /*IDENTIFY THE INPUT CONTROL BY NAME ATTRIBUTE*/
            if (elem.getAttribute("name").Equals("user"))
                    {/*ENTER USER NAME*/
                     elem.setAttribute("value", "ABC");
            }
          }
      }                           

    InformationsquelleAutor student

  5. 1

    Come Nico ha detto:

    <input id="user" type="text" size="15" runat="server">

    ma si deve provare:

    user.Value = "sample text";

    posto!

    InformationsquelleAutor Andreas Lymbouras

Lascia un commento