Batch Datei Website Öffnen und auf Knopf klicken?
Ich möchte mit einer Batch Datei eine Website öffnen und im folgenden Schritt einen Button auf der Website anklicken lassen.
7 Antworten
CMD unterstützt meines Wissens keine Möglichkeit, einen Mouseevent oder ähnliches zu senden. Insofern kommst du damit also nicht weiter und muss auf eine Programmiersprache ausweichen.
Auch in Programmierforen wird das immer wieder diskutiert, hier ein Beispiel:
https://stackoverflow.com/questions/15483420/automate-mouse-click-in-windows-with-script-batch-file
Mit purem Batch ist da nicht viel zu bewerkstelligen .
Für das Ansteuern der Maus muss man mindestens über Powershell C#-Code ausführen...
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($DestPosX, $DestPosY)
siehe Demo: https://www.gutefrage.net/frage/kann-ich-mit-einer-batch-datei-meine-maus-bewegen#answer-343025709
Allerdings ist sowas das Vorgehen von Leuten deren Denkweise menschlicher Sicht und der Benutzeroberfläche verhaftet sind. (Das soll nicht heißen, das Programmierer Aliens 👽 wäre...😅... obwohl manchmal kann ich den Primitivismus der Menschen nicht verstehen...)
Gewöhnlich handelt es sich bei Buttons auf Webseiten um Submit/ Sendbutton. (Warum sollte man diese sonst Automatisch auslösen wollen?) ...und was geschieht im Code hinter dem Button? ...ein Webrequest.
Was wäre da naheliegender, als einfach den gleichen Webrequest aus Powershell zu senden. ....Ganz ohne den Umweg über den Bildschirm.
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod?view=powershell-7
- https://4sysops.com/archives/understanding-the-invoke-restmethod-powershell-cmdlet/
- https://amp-reddit-com.cdn.ampproject.org/v/s/amp.reddit.com/r/PowerShell/comments/bfkz06/new_to_invokewebrequest_how_can_i_push_a_button/?amp_js_v=a3&_gsa=1&usqp=mq331AQFKAGwASA%3D#aoh=15935275700901&referrer=https%3A%2F%2Fwww.google.com&_tf=Von%20%251%24s&share=https%3A%2F%2Fwww.reddit.com%2Fr%2FPowerShell%2Fcomments%2Fbfkz06%2Fnew_to_invokewebrequest_how_can_i_push_a_button%2Frequest_how_can_i_push_a_button%2F
Ich denke Du hattest es dir weniger "kompliziert" vorgestellt. Aber für einen Programmierer dürfte es einfacher sein einen Request mit definiertem Inhalt an eine Webseite zu senden, als eine Webseite in einem Fenster nicht definierter Position zu öffnen...und anschließend programmtechnisch die Maus im Blindflug zu platzieren...
Klappt eher nur dann, wenn der "Button" einen Link enthält
Ansonsten musst du den Aufruf per Script et al nachbasteln.
Mit Batch Webseite öffnen, und per VBS Mausklick auslösen.
Ging es um klicken und nicht um .sendkey... und automatische Tastendruck.
Zudem ändert das ganze nichts an der Ineffizienz und Fehleranfälligkeit von derartigen Emulationen.
Erfahrungsgemäß verlieren Sendkey-Scripte Recht schnell den Fokus, was teilweise zu fatalen Folgen führen kann. (Die Tastendrücke/Klicks werden schlimmstenfalls vom Explorer entgegengenommen und als Nutzereingaben zur Löschung von Dateien ausgewertet..😅)
Als Webentwickler , sollt Dir eigentlich eingängig sein, dass derartige Techniken keinerlei Funktionssicherheit bieten und eine Art Blindflug darstellen, bei welchem man nicht Sicher sein kann wo man landet.
Bei Bots und Webscrapern sollte man stattdessen auf der Datenebene mit Requests agieren.
Habe VBS samt Windows mir zuletzt vor 4 Jahren angesehen... Daher hab ich auch nicht mehr wirklich im Kopf wie das läuft.
Ich hätte auch mit Requests gearbeitet aber anscheinend liegt hinter dem Button ein Js Code.
Aber ohne speziellere Informationen kann man da auch nichts sagen.
Mit Boardmitteln und einem der üblichen Browser alleine geht das nicht.
Es geht mit Bordmitteln (Powershell/C#) , aber nicht mit nativem Batch...
Allerdings ist es Blödsinn einen Mausklick zu simulieren, wenn man einfach nur das ausführen muss, was auch der Code hinter dem Button tut.
Mausklicks per vbs gibt es nicht...