Wie erhalte ich die ID eines HTMLElemtentes das selektiert ist ?

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Mangafreak1995.

    Wie erhalte ich die ID eines HTMLElemtentes das selektiert ist ?

    Ich wollte ein Login machen bei unterschiedlichen Seiten
    wie das einloggen geht: kein Problem
    aber wie krieg ich beim Einrichten die richtigen IDs ?
    Einrichten??

    Du meinst die IDs der Inputfelder der verschiedenen Seiten? Nun da musst du halt einmal bei jeder Seite in Quelltext schauen und die IDs rauslesen und dann in deinem Programm für jede Seite speichern.
    Ich habe sowas ähnliches gemacht, ein Event Manager der automatisch Events bei entsprechenden Seiten einträgt. Alle IDs/Namen und so in einer XML gespeichert

    bsp.:

    Quellcode

    1. <user id="username" value="Dodo" />
    2. <password id="passwd" value="123test" />
    @Dodo:
    mit XML hab ich noch nicht gearbeitet, aber ich krieg das auch in eine selbstgeschriebene Datei

    wäre RegEx passend für sowas ?
    wenn ja wie müsste so ein Pattern aussehn ?
    gibt es Tags für Textboxen ? (hab zwar schon mit HTML gearbeitet aber nix mit Textboxen, usw.)

    @ryLIX:
    ja das soll eine Erweiterung für meinen Browser werden (Webrett)

    und welche ?
    Also wenn du so eine art Autofill machen willst, dann wird das denke ich ziemlich schwer. Da muss das Script nämlich ziemlich "intelligent" sein um die richtigen Textboxen ausfindig zu machen. Mit RegEx kann mans machen, wird nur schwer. Anders kannste auch alle HTML Elemente druchgehen und eben schauen ob das aktuelle eine Textbox ist.

    Quellcode

    1. <input type="textbox" ... />
    was soll AutoFill sein ? (das automatische Eintragen der LogInDaten?)
    wie ich das anstelle weiß ich schon (dank SuFu ^^):

    VB.NET-Quellcode

    1. Webrett.Document.GetElementById("username").SetAttribute("value", Benutzername)
    2. Webrett.Document.GetElementById("password").SetAttribute("value", Kennwort)
    3. Webrett.Document.GetElementById("submitForm").InvokeMember("click")


    nur wie ich das noch weiter realisier hab ich keine Ahnung xD

    Q&D :

    VB.NET-Quellcode

    1. For Each Item as HtmlElement in Main.Webrett.Document.Elements
    2. If item. = 'Textbox' Then
    3. Next item
    oder wie ?
    Nun wie wäre es mal wenn die den Namespace anschaust was HtmlElement alles liefert??

    Wenn du das mal gemacht hättest wäre dir aufgefallen das es sowas gibt wie HtmlElement.TagName.
    Also ein bischel Eigeninitiative ist schon von nöten.
    Wenn dir eine Webseite bzw. die Form darin anschaust dann würdest du auch rausfinden das eine Textbox in HTML so aussieht

    Quellcode

    1. <input type="text" name="username" />
    sry Dodo ich bin grad am Ubuntu (wusstest du nicht, ich weiß)
    und soweit ich weiß gibts noch keine Portable Version von VS 2008 Prof die man mal über Wine starten könnte xD

    ja das is mir klar (Eigeninitiative)
    also steht der input-tag für Textboxen, richtig ?

    [off]
    hab mir mal eben was über xml angeschaut
    sieht ja ganz simpel aus
    kann man auch sagen:

    VB.NET-Quellcode

    1. For Each Node as XMLNode in XMLElement'.???
    2. 'was machen
    3. Next Node

    [/off]
    HtmlElement ist das gleiche, nur eben spezifisch auf HTML abgestimmt. Ob du nun XML nehmen willst, wo du nicht so eindeutige Namespaces hast bleibt dir überlassen, aber HtmlElement geht definitiv einfacherer.

    Nein Input-Tag steht für Allgemeine Eingabefelder

    <input type="submit" /> => Submit Button
    <input type="text" /> => Textbox
    <input type="password" /> => Textbox mit * als Password Char
    <input type="radio" /> => RadioBox
    <input type="checkbox" /> => Checkbox
    <input type="button" /> => Button
    <input type="hidden" /> => Versteckte Textbox, für Defaultwerte die mit dem Formular gesendet werden sollen.
    aah ok ^^

    ok ich bastel mir dann was mit HTML anstatt mit XML
    damit kann ich auch ein bischen besser ^^'

    B2T: also was empfiehlst du mir: RegEx oder das Abfangen(wenn Abfangen dann vielcht Denkanstoß ?)
    hä? haste doch nu schon HTMLElemente druchgehen man xD

    RegEx würdest du definitiv dran scheitern, einen universellen Pattern zu entwickeln der dir vernünftig die richtigen Felder aussucht.

    Nur mal so als vergleich, so sieht ein Pattern aus der eine E-Mail auf gültigkeit prüft

    Quellcode

    1. ^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$


    und du weißt das eine E-Mail relativ einfach aufgebaut ist.
    mit RegEx hab ich schon gearbeitet
    ich weiß das die Pattern kompliziert sind

    ja sry hab PC gewechselt und festgestellt das man mit den HTMLElements gut voran kommt ^^

    Also sind wir beim Abfangen
    aber wie kann ich sowas abfangen ?

    ryLIX schrieb:

    Du könntest die gesendeten Daten vorher abfangen und dann Seitenname, die ID und die Werte dazu speichern.
    Falls das denn gewünscht ist vom User.

    Abfangen
    nicht Abfragen

    denn es gibt sicher mehr Textboxen auf einer hp
    danke ryLIX
    ich werde mal damit ein bischen rumversuchen