Wie aktiviere mit WinHttp.au3 eine Checkbox?

  • Hallo,

    ich habe ein recht altes Scripts, welches seit langer Zeit jeden Tag seine Dienste tut. Es meldet sich bei einer Internetseite mit unterschiedlichen Accounts an und liest eine Tabelle aus (die sich täglich ändern könnte) und schreibt hier die Daten dann in eine Textdatei. Das ganze läuft sauber über die Windows Aufgabenplanung. Da ich für jeden Tag einen neuen Ordner anlegen lasse (mit dem Datum als Ordnername), fiel mir auf, dass der letzte Ordner vom 16.02.2021 war, also der 17. und 18. Februar nicht da waren.

    Dann habe ich das mal von Hand gestartet und es flog mir um die Ohren. Da ich pro Durchgang 2 HTML Files erzeuge, konnte ich zwar sehen, dass der Loginvorgang sauber lief, der Anbieter aber ein "Achtung wir haben am Sonntag Wartungsarbeiten" Fenster neu dazwischen schaltete, welches man mit einer Checkbox bestätigen muss.

    Jetzt kam ich zwar auf die Idee mit einer IF Abfrage das abzupassen, muss aber echt gestehen (ich habe mich auch schon sehr lange mit Autoit nicht mehr beschäftig), das ich gerade keine Ahnung habe, wie ich mit Autoit eine Checkbox auf einer Webseite virtuell anklicke / setze.

    Hier mal der Sourcecode der Seite:

    Ich hoffe es ist nur eine Kleinigkeit.

    Vielen Dank

  • Hey,

    in's blaue hinein gesprochen: WinHTTP ist grundsätzlich erst einmal nur eine Sammlung von Funktionen, die eine direkte Kommunikation mittels HTTP Protokoll ermöglicht.

    Das heißt einfach gesagt - Du kannst mit einem Webserver sprechen, ohne einen Browser verwenden zu müssen. Das wird i.d.R. aus Performancegründen gemacht. Soweit klar.

    Wenn man mittels WinHTTP mit einem Webserver "spricht", macht man in der Regel viele der Dinge, die ein Browser automatisch macht, manuell. Das setzen von Cookies, Weiterleitung auf andere Websiten, Umschalten der Verschlüsselung, etc.

    Will man mittels WinHTTP Formularfelder auf Websiten ausfüllen, oder Checkboxen anklicken - dann teilt man das dem Webserver genau so mit, wie es ein Browser tun würde. Im Browser trägst Du alles fein säuberlich ein und drückst dann auf "Senden". Der Browser überträgt die Formulardaten dann an den Webserver. In aller Regel geschieht das im Internet mittels HTTP Post Request.

    Du wirst also folgendes machen müssen:

    Nach dem erfolgreichen Login musst du einen erneuten HTTP POST Request absetzen, der dein "Checkbox-Formular" an den Server überträgt. Um über die Daten bescheid zu wissen, die Du senden musst, kannst Du den Login im Browser ausführen und die HTTP Requests und Responses mitschneiden (Stichwort "LiveHttpHeaders"). Den entsprechenden Request musst Du in WinHTTP nachbilden.