- Offizieller Beitrag
Hi,
da recht häufig Anfragen kommen, wie denn auf Objekte in Websites zugegriffen wird, stelle ich mal mein Skript rein, mit dem ich Form- und Element- Index aller verfügbaren Formelemente einer Seite ermittle.
Ich habe auch alles kommentiert, damit ihr wißt, was dort passiert.
Spoiler anzeigen
#include <ie.au3>
[/autoit] [autoit][/autoit] [autoit]Global $url = "http://www.autoit.de/jgs_portal.php?sid="
Global $oIE = _IECreate($url) ; IE-Objekt für die URL erstellen
; übrigens:
; _IELoadWait ist nicht notwendig, der 4.te Parameter von _IECreate ist bereits per default auf "wait" gesetzt!
Global $i = 0, $k = 0
$oForm = _IEFormGetCollection($oIE) ; Objekt mit allen Formen der URL erstellen
If IsObj($oForm) Then
For $form In $oForm ; für jede Form im Objekt Form
$oElement = _IEFormElementGetCollection($form) ; Zusammenstellung aller Formelemente dieser Form
If IsObj($oElement) Then
For $element In $oElement ; für jedes Element dieser Form
ConsoleWrite('Form: ' & $i & ', Element: ' & $k & ' ' & $element.name & @CRLF)
; Index von Form / Element und Name des Elements in Console schreiben
$k += 1 ; Elementindex um eins erhöhen
Next
EndIf
$i += 1 ; Formindex um eins erhöhen
$k = 0 ; Elementindex auf Null zurücksetzen
Next
EndIf
_IEQuit($oIE) ; Objekt IE löschen
[/autoit]
Edit: Hier mal noch analog zum Ermitteln des Table-Index:
Spoiler anzeigen
#include <ie.au3>
#include <array.au3>
Global $url = "http://www.autoit.de/jgs_portal.php?sid="
Global $oIE = _IECreate($url) ; IE-Objekt für die URL erstellen
Global $arTable, $i = 0
$oTable = _IETableGetCollection($oIE) ; Objekt mit allen Tabellen der URL erstellen
If IsObj($oTable) Then
For $table In $oTable ; für jede Tabelle im Objekt Tabellen
_ArrayDisplay(_IETableWriteToArray($table), 'Tabellen-Index: ' & $i) ; gibt Tabelle in ein Array aus
$i += 1
Next
EndIf
_IEQuit($oIE) ; Objekt IE löschen
[/autoit] [autoit][/autoit] [autoit]; Tabellen sind beim Auslesen meist gespiegelt
; Mit _Array2DMirror() aus meiner Signatur könnt ihr sie wieder 'zurückspiegeln'