lord-icon
Goto Top

Machbarkeitsstudie: "Powershell - bestimmten Wert aus ein Tab von einer Webseite auslesen"

Moin,

ich fange mal von hinten an:
  • Firefox
  • mehrer Tabs sind offen
  • PS müsste somit erstmal das korrekte Tab ermitteln (nach meiner Vorgabe)
  • Website ist nicht JS-generiert

= Wenn PS dann das korrekt Tab gefunden hat, soll ein Button dargestellt werden, der beim Klick 2 Werte in ein Input-Feld einträgt.

Submitten tu ich das dann nach Kontrolle selbst.

Hintergrund: Ich bin arbeitsbedingt 8h auf einer Website unterwegs wo ich gewisse Dinge (streng nach Form XY) eintragen muß. Das mache ich 20-50 mal am Tag. Das nervt bzw. ist sehr zeitintensiv.

Kleine Abhilfe soll nun der Button (oder mehrere ja nach anforderung) schaffen.
Eingelesen habe ich mich schon dass das PS 3.0 schaffen sollte.

Nur zur Tab auswertung konnte ich noch nichts finden. Meist ist FF auch mit mehreren Fenstern offen. Dadrin dann wiederrum mehrere Tabs. Die müssten ja dann alle durchlaufen werden und irgendwie dann "festgenagelt" werden, sodass PS (im Laufe der Sitzung) immer auf das gleiche Tab zugreift (ohne wieder alles durchlaufen zu müssen). Soll ja auch Ressis sparen.

Sprich: Schritt 2 konnte ich Beispiele finden.... bringt mir aber wenig, wenn Schritt 1 nicht klappt.

Deshlab nun diese kleine "Machbarkeitsstudie". Vielleicht sieht ja einer schon jetzt ein Problem (z.B. Schritt 3 = Button Darstellung) was dann alles verhindert.

Habt Dank

P.s. Nein = Die Webseite entsprechend zu erweitern ist wg. internen Vorgaben nicht möglich/gewünscht

Content-ID: 5647891416

Url: https://administrator.de/contentid/5647891416

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

3063370895
3063370895 26.01.2023 um 09:03:20 Uhr
Goto Top
Moin,

Ja das geht - z.B. mittels Selenium
lord-icon
lord-icon 26.01.2023 um 09:58:09 Uhr
Goto Top
Nein das geht nicht...
aber mein Fehler: Ich kann/darf keine Software installieren

Es müsste somit mit den Win10 Boardmitteln erfolgen. Und da ist bei mir nur PS in der Version 5.1 verfügbar

Ein Stückchen bin ich ja auch schon weitergekommen.. aber aufgrund von fehlenden Daten werde ich wohl nicht über Schritt 1 hinauskommen.

Ältere FF Versionen speicherten die Sitzungen noch in: sessionstore.js
Diese existiert bei mir aber nicht.

Jetzt wohl in: sessionstore-backups.jsonlz4 (die bei mir aber recovery.jsonlz4 heißt)
https://support.mozilla.org/de/kb/wiederherstellen-einer-browsersitzung- ...

Existiert auch... und dort sind tatsächlich die Tabs enthalten, die ich brauche. test zeigen aber die Sackgasse

$test = Get-Content $env:userprofile\AppData\R*\M*\F*\P*\*\s*\recovery.jsonlz4 | ConvertFrom-Json
ConvertFrom-Json : Ungültiger JSON-Primitiv: mozLz40.
In Zeile:1 Zeichen:82
+ ... rprofile\AppData\R*\M*\F*\P*\*\s*\recovery.jsonlz4 | ConvertFrom-Json
+                                                          ~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [ConvertFrom-Json], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand
Auch nicht im RAW (Get-Content -Raw) format.

Es wäre ja auch soooooo einfach gewesen.
Idee wäre jetzt diese Datei roh einzulesen und mit viel greppen die passende URL rauszuholen.
Schauen wir mal wie weit ich damit komme....
5175293307
5175293307 26.01.2023 aktualisiert um 10:52:40 Uhr
Goto Top
Ich kann/darf keine Software installieren
Dafur muss man nix installieren ....
Man kann zwar auch mit dem IE-Comobject arbeiten aber die meisten Webseiten funktionieren mit der Engine eh nicht mehr vernünftig.

Meistens muss man eine GUI gar nicht fernsteuern es reicht die POST/GET Requests einfach im Browser per F12 zu verfolgen und diese dann mit PS direkt abzusetzen/nachzubauen.
Dazu muss man aber deine Webseite kennen , dafür gibt es kein universelles Rezept das ist immer individuell auf die Webseite zugeschnitten!!
lord-icon
lord-icon 26.01.2023 um 11:29:59 Uhr
Goto Top
Zitat von @5175293307:
Dafur muss man nix installieren ....

Stimmt. Hab mich mal eingelesen. ABER: Dennoch nein.
Die benötigte DLL stellt aber ein Problem dar und darf/kann nicht runterladen werden.
5175293307
5175293307 26.01.2023 aktualisiert um 11:45:38 Uhr
Goto Top
Tja, dann kann man nur vernünftig weiter helfen wenn man die Webseite kennt ...
Oder musst halt selbst die Kommunikation im Browser mittels F12 und Netzwerk-Tab beobachten und das mit Invoke-Webrequest nachbauen.
5175293307
Lösung 5175293307 26.01.2023 aktualisiert um 13:00:12 Uhr
Goto Top
Und wie gesagt mit dem IE kann man auch noch was basteln wenn man will und die Seite damit noch geht ...
Findest du hier im Forum auch diverse Spielarten von ...
Powershell-Script, das sich auf Website anmeldet und dann eine andere speichert
Powershell - bestimmten Wert aus Webseite auslesen
Powershell - Aufruf von HTML Verknüpfungen mit Fensteranpassung und automatische Eingabe des Passwords möglich?
Problem Auslesen einer Internetseite mit Powershell
Firefox Tab oder Webpage automatisch aktualisieren
 $ie = New-Object -Com InternetExplorer.Application
 $ie.Visible = $true
 $ie.Navigate("https://administrator.de/login/")  
 while($ie.Busy){sleep .5}
 $ie.document.getElementByID('global-login-field').value = "BlablubUser"  
Davon würde ich mich aber verabschieden und es mit Invoke-Webrequest abfackeln, das hat man in 5 Minuten zusammengeschrieben wenn man sich die Seite mal per Browser Developer-Tools angesehen hat.

Ansonsten kann man sich auch mittels Texteditor ein Browser-Addon schreiben, das geht auch mit Bordmitteln, ein Texteditor und die Firefox-API DOKU reicht dafür.
lord-icon
lord-icon 26.01.2023 um 14:07:19 Uhr
Goto Top
Hab Dank @5175293307.

Ich setze das ganze mal auf gelöst... was es aber nicht ist.
Ich hab es mitunter eingesehen, dass es zwar nicht unmöglich wäre... aber sehr zeitintensiv und vermutlich nicht lange von Dauer.

Dennoch vielen Dank für's BrainStorming face-wink
5175293307
5175293307 26.01.2023 aktualisiert um 16:09:50 Uhr
Goto Top
Zitat von @lord-icon:
aber sehr zeitintensiv
Kommt drauf an, in einfachen Fällen in ein paar Minuten geschrieben ... Je nachdem wie viel die Anwendung in Script-Kiddie-Protection investiert hat.
und vermutlich nicht lange von Dauer.
Kommt drauf an wie oft sich die Webanwendung im Background ändert. Da müsstest du aber auch bei anderen Lösungen ran wenn die Webanwendung keine API dokumentierte/versionierte bereitstellt.

Dennoch vielen Dank für's BrainStorming face-wink
You're welcome. 🖖