Hallo zusammen
Bevor ich jetzt für jedes meiner Anliegen ein eigenen Thread aufmache, packe ich mal alles hier zusammen, da es alles ein und das selbe Projekt betrifft.
Kurze Zusammenfassung:
Ich arbeite zur Zeit an einem Programm, welches einen automatischen Klick Out bei Idealo vornehmen soll.
Ablauf des Programms: -> Idealo.de wird aufgerufen -> wenn seite geladen: klick auf ein Produkt->wenn Seite geladen ist soll auf ZUM SHOP geklickt werden.
Natürlich hat IDealo jetzt kein 0-8-15 Source sondern wieder ein bisschen anspruchsvoller. Das alles habe ich mit dem Webbrowser Control realisieren wollen (Alternativ auch mit GeckoFx), since da verschiedene Trackingparameter mit übergeben werden sollen.
Nun schonmal zu meiner ersten Frage:
Ich habe viel mit der DocumentCompleted Funktion des Webbrowser gearbeitet und mit For Each Schleifen um ein bestimmtes Element zu treffen.
Allerdings wollte ich dir For Each Schleife nach dem Ersten Fund beenden, jedoch arbeitet er auch nach der Exit For Angabe weiter sodass er willkürlich immer wieder auf irgendein Produkt klickt...
Eine Timer Funktion finde ich irgendwie nur eine hilfsmäßige Rettung der ganzen Sache... daher meine Frage, ob es da eine andere Methodik gibt um nach dem ersten Fund des Elementes nicht weiter zu suchen sondern das dann einfach genommen und nicht wiederholt wird.
Denn der Code wird ja bei jedem Documentcompleted ausgewählt und ein richtiges Workaround habe ich nicht finden können, denn auch die If Documenttext.contains Abfragen sind nicht 100% zuverlässig.
Und Anliegen Nummer 2:
Wenn ich jetzt auf der Produktseite bin, und unten die ganzen Anbieter stehen mit dem Zum Shop Button ist der Source so aufgebaut:
Nach einigem rumprobieren wie ich das jetzt anklicken kann ist das jetz mein letzter Stand:
Ein Invokemember hat auch nicht funktioniert...
Habt ihr da eventuell einen Tipp für mich?
Beste Grüße
HP
Bevor ich jetzt für jedes meiner Anliegen ein eigenen Thread aufmache, packe ich mal alles hier zusammen, da es alles ein und das selbe Projekt betrifft.
Kurze Zusammenfassung:
Ich arbeite zur Zeit an einem Programm, welches einen automatischen Klick Out bei Idealo vornehmen soll.
Ablauf des Programms: -> Idealo.de wird aufgerufen -> wenn seite geladen: klick auf ein Produkt->wenn Seite geladen ist soll auf ZUM SHOP geklickt werden.
Natürlich hat IDealo jetzt kein 0-8-15 Source sondern wieder ein bisschen anspruchsvoller. Das alles habe ich mit dem Webbrowser Control realisieren wollen (Alternativ auch mit GeckoFx), since da verschiedene Trackingparameter mit übergeben werden sollen.
Nun schonmal zu meiner ersten Frage:
Ich habe viel mit der DocumentCompleted Funktion des Webbrowser gearbeitet und mit For Each Schleifen um ein bestimmtes Element zu treffen.
Allerdings wollte ich dir For Each Schleife nach dem Ersten Fund beenden, jedoch arbeitet er auch nach der Exit For Angabe weiter sodass er willkürlich immer wieder auf irgendein Produkt klickt...
Eine Timer Funktion finde ich irgendwie nur eine hilfsmäßige Rettung der ganzen Sache... daher meine Frage, ob es da eine andere Methodik gibt um nach dem ersten Fund des Elementes nicht weiter zu suchen sondern das dann einfach genommen und nicht wiederholt wird.
Denn der Code wird ja bei jedem Documentcompleted ausgewählt und ein richtiges Workaround habe ich nicht finden können, denn auch die If Documenttext.contains Abfragen sind nicht 100% zuverlässig.
Und Anliegen Nummer 2:
Wenn ich jetzt auf der Produktseite bin, und unten die ganzen Anbieter stehen mit dem Zum Shop Button ist der Source so aufgebaut:
HTML-Quellcode
- <a target="_blank"
- data-checkout="false"
- data-gtm-event='transaction.leadout'
- data-gtm-payload='{"event_action": "button.leadout ", "event_label": "gallery", "event_category": "transaction",
- "product_id": "6019587",
- "product_name": "Kylie Minogue - Golden (CD)",
- "product_price": "4.0",
- "product_category": "9891",
- "currency": "EUR",
- "shop_name": "Amazon Marketplace",
- "delivery_time": "SHORT",
- "shop_rating": "100",
- "position": "-1",
- "free_return": "0"}'
- href="/preisvergleich/Relocate/3353820510749200398.html?categoryId=9891&price=4.00&productid=6019587&sid=12041&type=offer&pos=-2" class="button button--leadout expanded" rel="nofollow">Zum Shop</a>
Nach einigem rumprobieren wie ich das jetzt anklicken kann ist das jetz mein letzter Stand:
VB.NET-Quellcode
- If WebBrowser1.DocumentText.Contains("Zum Shop") Then
- Try
- Dim theElementCollection As HtmlElementCollection
- theElementCollection = WebBrowser1.Document.GetElementsByTagName("a")
- For Each curElement As HtmlElement In theElementCollection
- If curElement.GetAttribute("data-gtm-event").Contains("transaction.leadout") Then
- curElement.RaiseEvent("click")
- End If
- Exit For
- Next
- Catch exc As Exception
- MsgBox(exc.Message)
- End Try
- End If
Ein Invokemember hat auch nicht funktioniert...
Habt ihr da eventuell einen Tipp für mich?
Beste Grüße
HP