Funktion Mit der connectHTML-Anweisung können Sie Werte aus einer mit  Control oder  WebView angezeigten HTML-Seite lesen, Werte dort verändern und Aktionen in der HTML-Seite auslösen.
Beispiel connectHTML click="button_Weiter"

Der Button "Weiter" in der angezeigten Internetseite wird gedrückt.

Format connectHTML optionen  name="myname"

Sie nennen den bei Control ... name="myname" oder WebView ... name="myname" angegebenen Namen des Controls, in dem die HTML-Seite angezeigt wird.

Alle weiteren Optionen sowie die HTML-Variablen html[...] beziehen sich dann auf dieses Fenster:

  • Set html[name] "wert"          // Setzt den Wert in das HTML-Element
  • "... &html[name] ..."          // liest den Wert aus der HTML-Seite        
  • if html[name]                  // fragt die Existenz des HTMl-Elementes ab        
Optionen
name= Bezug auf ein WebSeite, die durch Control ... name= oder WebView ... name= angezeigt wird.
 
click= Angabe eines HTML Elements (z.B. ein Button, ein Image oder ein Link) auf den geklickt werden soll. Beispiel:

connectHTML click="image_search.jpg"

geturl= Die aktuelle URL wird in die angegebene Variable zurückgeliefert. Das ist insbesondere dann nützlich, wenn der Benutzer bereits auf andere Seiten navigiert haben kann.  Beispiel:

connectHTML geturl="url"
if not Q[ok] or not V[url=http:// ... /basket.asp]
   Return "E: Bitte zunächst den 'Warenkorb' anwählen" -statusline
endif

seturl= Die HTML-Seite mit der angegebenen URL wird nun angezeigt.
gettitle= Der Titel der Seite wird zurückgeliefert.
settitle= Der Titel der Seite wird neu gesetzt.
 

listelements=

Angabe einer Textvariable, in die alle HTML-Elemente der laufenden Seite mit ihren Werten übertragen werden. Das ist insbesondere während der Scriptentwicklung  nützlich, um die Elementnamen bequem über Cut&Paste entnehmen zu können.  Beispiel:

// GuiXT Script
Pushbutton (toolbar)
"HTML Elemente lesen" process="get_html_elements.txt"
Textbox
(10,0) (40,120) name="elm"

// InputScript "get_html_elements.txt"
connectHTML
listelements="elm"

-shownames Sinnvoll während der Entwicklung: In dem HTML-View werden die Namen aller Elemente als Tooltip angezeigt, sobald der Mauszeiger einige Zeit auf dem Element verweilt.
-pressEnter Das Drücken der Enter-Taste wird simuliert, um eine Aktion auszulösen, die in der HTML-Seiten durch <form action=...> definiert ist.
-closeWindow Das Anzeigefenster wird geschlossen.
Optionen nur für WebView
run= Name einer Textvariablen, die JavaScript Coding enthält. Das angegebene Coding wird im globalen Kontext der Webseite ausgeführt.
runresult= Name einer Textvariablen, in die das Ergebnis der Ausführung von run= gestellt wird.
setHTMLfromText= Name einer Textvariablen, die HTML Coding enthält. Das Coding ersetzt den aktuell angezeigten Inhalt.
visible= Mögliche Werte sind "on" und "off". Die Darstellung der Webseite wird angezeigt oder ausgeblendet.
item= In Verbindung mit toText= und fromText=. Die Funktionalität ist ähnlich wie weiter unten bei html[...] beschrieben, arbeitet aber mit Textvariablen. Zum Beispiel kann ein Langtext damit in eine Textbox der HTML-Seite übertragen werden.
checkItem= Prüft, ob ein Element mit dem angegebenen Namen in der HTML-Seite vorhanden ist.
toText= Name einer Textvariablen. Der Inhalt des mit item= genannten Elements wird in die Textvariable gestellt.
fromText= Name einer Textvariablen. Der Inhalt der Textvariablen wird in das mit item= genannte Elements gestellt.
capturePreview= Erzeugt einen Screenshot des aktuellen WebView in die angegebene Datei (PNG Format)
callDevTools= Ermöglicht den Aufruf aller Methoden des Chrome DevTools Protokolls (https://chromedevtools.github.io/devtools-protocol)
jsonInput= Name einer Textvariablen, welche die Eingabeparameter für callDevTools= in JSON Format enthält
jsonOutput= Name einer Textvariablen, in welche die Ausgabe von callDevTools= in JSON Format gestellt wird
-reconnect Stellt die Verbindung zur WebView-Seite wieder her. Nur nötig nach manchen DevTool-Operationen wie "page.Reload"
zoomfactor= Dynamische Angabe der Darstellungsgrösse, die auch statisch bei WebView gesetzt werden kann.
Ansprechen der HTML-Elemente Die  HTML-Elemente können analog zu den Scriptvariablen V[...] verwendet werden; die Notation ist html[...]. Unterstützt sind:
  • Set html[name] "wert"          // Setzt den Wert in das HTML-Element
  • "... &html[name] ..."          // liest den Wert aus der HTML-Seite        
  • if html[name]                  // fragt die Existenz des HTMl-Elementes ab        

Nach dem Setzen eines Wertes wird automatisch eine eventuell vorhandene "on change" Routine der HTML-Seite aufgerufen. Bei Auswahlfeldern (Select) kann es nötig sein, nach Setzen des Wertes noch das Element durch click= anzuklicken, da eventuelle interne Verarbeitungen erst dadurch ausgelöst werden.

Generell ist bei dem automatischen Ablauf von HTML-Seiten zu beachten, dass in der Regel die vorhandenen Funktionen (Setzen von Werten und Klick auf Buttons, Links und Images) ausreichen, die Benutzeraktion zu simulieren. In speziellen Fällen, bei denen über JavaScript, VBScript oder durch Einbinden von Plugins eine über HTML gehende Funktionalität verwendet wird, können diese Möglichkeiten eventuell an ihr Limit stossen.

Namen der HTML-Elemente Während der Entwicklung empfiehlt sich die Verwendung der Funktionen listelements= und -shownames zur Anzeige der intern vergebenen Namen.

Generell setzt GuiXT den Namen zusammen aus dem Typ des Elements (image_, button_, checkbox_, ...) sowie einem in der HTML-Seite vergebenen Namen oder dem Text. Eventuelle Leerzeichen werden im Namen durch den Unterstrich ersetzt. Bei duplikativen Namen hängt GuiXT automatisch einen Index .2, .3,... an den ursprünglichen Namen. Beispiele:

html[image_help.jpg]
html[link_Suche]
html[link_Suche.2]
html[select_Country]
html[text_Search_Filter]

HTML-Tabellen Häufig werden Tabellen in HTML-Seiten genutzt, die auch ineinander geschachtelt werden können. Die Inhalte aller Tabellenzellen stehen  als HTML-Variablen zur Verfügung. Dabei verwendet GuiXT folgende Logik: cell_i.j.k ist der Name der Zelle Nr. k in Zeile Nr. j der Tabelle Nr. i.

Zum Beispiel bezeichnet

html[cell_1.4.5]

eine Zelle in der ersten Tabelle der Seite, und zwar die Zelle in Reihe 4  Spalte 5.

Bei geschachtelten Tabellen wird pro Zelle das gleiche Verfahren angewandt und der Zellenname davorgesetzt, mit '~' verbunden. Beispielsweise ist

html[cell_3_1_7~1_2_2~2.2.4]

folgende Zelle:

Die dritte äussere Tabelle auf der Seite. Dort die Zeile 1, Spalte 7. Diese enthält mindestens eine weitere Tabelle. Wir nehmen die erste und gehen in ihr in Zeile 2, Spalte 2. In dieser Zelle sind mindestens zwei weitere Tabellen. Wir nehmen die zweite; dort ist dann in Zeile 2, Spalte 4 die gewünschte Zelle.

Anzahl der Zeilen pro Tabelle

Pro Tabelle enthält eine Variable "..._rows" die Anzahl der Tabellenzeilen. Beispielsweise ist table_3_rows

"&html[table_1_rows]"

die Anzahl der Zeilen der ersten Tabelle. Bei geschachtelten Tabellen entsprechend. Zum Beispiel  ist.

"&html[table_3_1_7~1_rows]"

die Anzahl der Zeilen der ersten Tabelle in Zelle 1_7 der dritten Tabelle der Seite.

Bei Schleifenkonstrukten in einem Script ist es häufig einfacher, statt der Zeilenzahl die Existenz einer Zelle abzufragen. Beispiel:

// Zeilenzähler
Set V[i] 1
  

label
anf

// weitere Zeile vorhanden? sonst Ende der Tabelle
if not html[
cell_1.&V[i].1]
  goto
end
endif

... Verarbeiten der Tabellenzeile

Set V[i] &V[i] +
1
goto
anf

label
end

Checkbox und Radiobutton Die Werte einer Checkbox oder eines Radiobutton werden durch die Werte 0 und 1 repräsentiert. Das Setzen eines Radiobutton (Wert 1) löscht automatisch die übrigen Radiobuttons der gleichen Gruppe. Beispiel:


Set
html[radio_English] 1

Objekt "guixt" Falls in der HTML-Seite eine globale JavaScript Funktion "guixt_initialize" exisistiert, wird diese bei der ersten connectHTML-Anweisung aufgerufen und das "guixt" Objekt übergeben, mit dem die Kommunikation zwischen GuiXT und  JavaScript Funktionen möglich ist. Details finden Sie in Objekt "guixt" in VBScript and JavaScript.
Komponente GuiXT + Controls