Ergebnis 1 bis 8 von 8
  1. #1
    Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    4

    Standard C# webbrowser auf einenn button drücken lassen

    hallo liebes, gulli board ich bin neu hier hoffe das es hier im richtigen bereich ist ^^

    so mein problem ist ich bastelle mir grade ein youtube abonier bot zusammen aber mein bot clickt nicht auf den button
    Code:
          <div id="subscribe-container" >
            <span class="footer-content">
              <button onclick="controller.subscribe(null);return false;" type="button" class="action-initiator yt-uix-button" id="subscribe-button"  role="button"><span class="yt-uix-button-content">Subscribe </span></button>
              <span class="username-container" title="0179cool">
    0179cool
    das ist der code für den button aber wie soll ich ihn anclicken ich hatte das so versucht

    Code:
    webBrowser1.Document.GetElementById("subscribe-button").InvokeMember("click");
    könnt ihr mir helfen was mache ich falsch danke im voraus

  2. #2
    Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    72

    Standard Re: C# webbrowser auf einenn button drücken lassen

    Hallo,

    also bei mir sieht der HTML - Code von Youtube anderst aus.
    HTML-Code:
    <button href="https://accounts.google.com/ServiceLogin?uilel=3&amp;service=youtube&amp;passive=true&amp;continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Dde_DE%26next%3D%252Fwatch%253Fv%253D_MFkGo-hsCY%2526feature%253Dg-logo%2526context%253DG2d74190FOAAAAAAAAAA&amp;hl=de_DE&amp;ltmpl=sso" type="button" class="yt-subscription-button yt-subscription-button-js-default end  yt-uix-button" onclick=";window.location.href=this.getAttribute(&#39;href&#39;);return false;" data-enable-hovercard="true" data-subscription-value="W7h-1mymnJ96akzjrmiIgA" data-force-position="true" data-position="topright" data-subscription-feature="watch" data-subscription-type="" role="button"><img class="yt-uix-button-icon yt-uix-button-icon-subscribe" src="//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt=""><span class="yt-uix-button-content">  <span class="subscribe-label">Abonnieren</span>
      <span class="subscribed-label">Abonniert</span>
      <span class="unsubscribe-label">Abo beenden</span>
     </span></button>
    Der Button hat also keine ID auf die man zugreiffen könnte.
    Aber du kannst das Navigated Ereignis (DocumentComplete funktioniert nicht?) des WebBrowsers abbonieren und dann über alle Buttons iterieren. Ca so:

    Code:
        private void Form1_Load(object sender, EventArgs e)
        {
          webBrowser1.Navigate("link zum Youtube Video");
        }
    
        private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
        {
          HtmlElementCollection htmlElements = webBrowser1.Document.GetElementsByTagName("button");
          foreach (HtmlElement item in htmlElements)
          {
            if (item.InnerText.Contains("Abonnieren"))
            {
              item.InvokeMember("click");
            }
          }
        }
    Anstadt dem Click könntest du auch einfach dem href des Buttons folgen.

    Bei mir funktionierts zumindest

  3. #3
    Mitglied

    (Threadstarter)


    Registriert seit
    Jan 2012
    Beiträge
    4

    Standard Re: C# webbrowser auf einenn button drücken lassen

    danke für deinen tip werde es gleich mal ausprobiren zum aboniren hatte ich so ein link hier genutzt http://www.youtube.com/subscribe_widget?p=USERNAME

    edit: habe es versucht aber mit deinem code geht es auch nicht kann du das dir nochmal für diesen link angucken bitte
    Geändert von lolboy123 (27. 01. 2012 um 15:45 Uhr)

  4. #4
    Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    72

    Standard Re: C# webbrowser auf einenn button drücken lassen

    Hallo,

    sorry, dachte du willst Videos abonnieren.
    Habe es gerade selbst ausprobiert und es Funktioniert schon. D.h. der Klick wird ausgeführt, jedoch wird ein JavaScript fehler geworfen.
    Das Problem ist, dass das Webbrowser Control den veralteten IE 7 Browser im Hintergrund nimmt und dieser mit den neuesten JavaScript Methoden nicht klarkommt.

    Du kannst jetzt entweder einen Registry-Hack versuchen:
    http://www.west-wind.com/weblog/post...the-IE-Version

    oder du benützt ein anderes WebBrowser Control.

  5. #5
    Mitglied

    (Threadstarter)


    Registriert seit
    Jan 2012
    Beiträge
    4

    Standard Re: C# webbrowser auf einenn button drücken lassen

    doch ich wolte ein kanel / video aboniren aber geht ja net ich mache mich auf die suche eines neuren controlers danke fürs erste wenn du doch ncoh tipps hast schreib mich an

    EDIT: mit dem registery hack wir der controler jetz als internet explorer 9 erkant was muss ich jetz machen solte ja jetz eigentlich gehen mit dem abboniren
    Geändert von lolboy123 (27. 01. 2012 um 17:36 Uhr)

  6. #6
    Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    72

    Standard Re: C# webbrowser auf einenn button drücken lassen

    Hallo,

    es wäre hilfreich wenn du eine Fehlermeldung postest oder beschreibst was nicht funktioniert bzw wie es sich verhält.
    Code wie du es versuchst hilft natürlich auch immer.

    Ich kann dir nur mein Minimal-Beispiel geben mit dems bei mir funktioniert:
    Code:
            private void Form1_Load(object sender, EventArgs e)
            {
                webBrowser1.Navigate("http://www.youtube.com/subscribe_widget?p=USERNAME");
                webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
            }
    
            void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                webBrowser1.Document.GetElementById("subscribe-button").InvokeMember("click");
            }

  7. #7
    hat Spaß dran... Avatar von 12345z
    Registriert seit
    Aug 2007
    Beiträge
    1.804

    Standard Re: C# webbrowser auf einenn button drücken lassen

    Wenn du keine Seite anzeigen lassen willst, ist der Webbrowser das völlig falsche Objekt.
    Ein Webbrowser ist zum Anzeigen von Inhalt da, nicht um Schritte im Internet zu Automatisieren.

    Werf mal ein Blick auf die (Http)Webrequest Klassen.

  8. #8
    Mitglied

    (Threadstarter)


    Registriert seit
    Jan 2012
    Beiträge
    4

    Standard Re: C# webbrowser auf einenn button drücken lassen

    ok danke,

    das drücken auf den knopf funktionirt jetz

    tausend dank ^^ das lag am IE7 ^^ mit register hack hat irgentwie dan doch geklapt
    Geändert von lolboy123 (28. 01. 2012 um 14:52 Uhr)

  9.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •