ConnectHTML

 GuiXT 
 Controls 

目的
制御または表示コマンドで表示したHTMLページから値を読み取ることができます。 値を変更したり、リンクをクリックするなどのさまざまなアクションを実行したりすることもできます。 独自のHTMLページとインターネットまたはイントラネットページの両方を使用できます。 コントロールまたはビューを介した表示は、SAP画面に統合することも、独立した「フローティング」ウィンドウにすることもできます。

このコマンドには、コンポーネント “GuiXTコントロールズ” ”Viewer” が必要です。

connectHTML click=“button_Continue”

Viewで現在表示されているHTMLページで[Continue]ボタンをクリックします。

書式
Ÿ   connectHTML options name=“myname”

ステートメントで指定されたものと同じ名前を使用します。

Control …. name=“myname”

Ÿ   connectHTML options window=“&V[viewwindow]”

View …. returnwindow=viewwindow” ステートメントによって返されたウィンドウ番号を使用します。 すべてのオプションとHTML変数は、このウィンドウを参照します。

connectHTMLの後、HTML変数を使用できます。

Ÿ  Set html[name] “value” // HTMLページに値をセットします。

Ÿ  “… &html[name] …” // HTMLページから値を読み取ります。

Ÿ  if html[name]     //  HTML要素の存在を問い合わせます。

オプション
name= によって設定されるコントロール名の指定
Control …. name=
window= View …. returnwindow= ステートメントによって返されるウィンドウ番号の指定

このコンテキストでは、次の点に注意してください。SAP画面内にHTMLページを(個別のウィンドウとしてではなく)表示し、connectHTMLでこのページを参照するか、同じGuiXTでこのページのHTML変数を使用する必要がある場合 スクリプトでは、Viewステートメントでreturnwindow= を使用する必要があります。 このオプションを使用する場合のみ、ビューウィンドウが同期的に開かれます。 returnwindow= がない場合、SAP画面が表示されている場合にのみ、HTMLページを参照できます。 この画面のボタンで開始されたInputScriptで、またはViewステートメントを変更せずに同じ画面が再び表示されたとき。

View …. -floatingを使用して別のウィンドウに表示するHTMLビューの場合、これは必要ありません。これらのウィンドウは常に同期的に表示されるため、次のスクリプトステートメントが実行される前に作成されます。

click= クリックするHTML要素(ボタン、画像、リンクなど)に名前を付けます。

例:

connectHTML click=“image_search.jpg”

geturl= HTMLページの現在のURLを返します。 ユーザーがページを離れていないことを確認したい場合に使用できます。

例:

connectHTML geturl=“url”
if not Q[ok] or not V[url=http:// … /basket.asp] Return “E: Please display the ‘shopping basket’ first”statusline
endif

seturl= 指定されたURLのHTMLページを表示します。
gettitle= ページのタイトルを返します。
settitle= 新しいページタイトルを設定します。 Viewはページタイトルが表示されないため、これは後でページタイトルを読みたい場合にのみ内部的に使用されます。
listelements= 現在のページのすべてのHTML要素は、指定されたテキスト変数(ロングテキスト)に表示されます。 これは、スクリプトの開発中に役立ちます。これは、テキストウィンドウからHTML要素名をコピーして貼り付けることができるためです。
例:// GuiXT Script
Pushbutton (toolbar)
“Read HTML elements” process=“get_html_elements.txt”
Textbox
(10,0) (40,120) name=“elm”// InputScript “get_html_elements.txt”
connectHTML
listelements=“elm”
-shownames スクリプト開発中に使用:マウスを数秒間この要素にポイントすると、各HTML要素の名前がHTMLページに「ツールチップ」として表示されます。
searchbrowserwindow= 開いているブラウザーウィンドウ(Internet Explorerのみ)、または見つからない場合は0を返します。 下記を使用するとブラウザウィンドウが見つかったかどうかを照会できます。

if Q[ok] …
endif

このウィンドウは、Viewウィンドウと同じように、すべてのconnecthtmlステートメントで使用できます。

index= searchbrowserwindow=と組み合わせて使用します。 検索するブラウザウィンドウの番号i(i = 1,2,3,..)を指定します。
HTML要素の使用
HTML変数は、通常のスクリプト変数V […]と同じように使用できます。 表記はhtml […]です。 次のコンテキストで使用できます。

Ÿ  Set html[name] “value” // HTMLページに値をセットします。

Ÿ  “… &html[name] …” // HTMLページから値を読み取ります。

Ÿ  if html[name]     //  HTML要素の存在を問い合わせます。  

新しい値が設定されると、GuiXTはこの要素のHTMLページの「変更時」ルーチンを自動的に呼び出します。 ドロップダウンフィールド(要素の選択)の場合、場合によっては、この要素を変更した後、click =を使用してクリックする必要があります。 そうしないと、HTMLページの内部処理の一部が失われる可能性があります。

HTMLページのユーザー操作を自動化する場合、ほとんどの場合(値を設定してリンク、ボタン、または画像をクリックすること)、connectHTMLが提供する手段で十分です。 ただし、特別なJavaScriptまたはVBScript関数が使用されている場合や、ページに特別なプラグインが含まれている場合は、ユーザー操作の自動化がconnectHTML機能を超える場合があります。

HTML要素の命名法
開発中は、listelements= および--shownames機能を使用してHTML要素名を表示することをお勧めします。

GuiXTは次の方法で要素の名前を作成します。名前は常に要素タイプ(image_, button_, checkbox_, …)で始まります。 次に、要素の内部IDまたは名前、またはユーザーテキスト(ボタンテキストなど)。 すべての「スペース」文字は下線に置き換えられます。 重複する名前が発生した場合、GuiXTは接尾辞.2、.3、…を追加します。

 

例:

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

HTMLテーブル
テーブルはHTMLページでは非常に一般的です。入れ子にすることができます。 GuiXTを使用すると、各テーブルセルに対処できます。名前には、GuiXTは次の表記を使用します。cell_i.j.kは、テーブルiの行jのセル番号kです。

例:

html[cell_1.4.5]

ぺージの最初のテーブル内のセル、つまり行4、カラム5(1から始まる)のセルを示します。

ネストされたテーブルの場合、名前はテーブルを含むセルの名前で始まり、その後に「〜」とネストされたテーブル内の通常のセル座標が続きます。

例:

html[cell_3_1_7~1_2_2~2.2.4]

これは次のセルです。ページの3番目の外部テーブルから始めます。行1、カラム7のセルを選択します。このセルには少なくとも1つのネストしたテーブルがあります。最初のネストされたテーブルの最初の1つを取得してから、行2、カラム2のセルを取得します。このセルには、少なくとも2つのネストされたテーブルがあります(ネストレベル2)。

2番目のものを取得し行2とカラム4に移動すると、セルcell_3_1_7~1_2_2~2.2.4に到達します。

各テーブルの行数

各テーブルに対して、GuiXTはこのテーブルの行数を含むHTML変数 “…_ rows”を割り当てます。


例:

“&html[table_1_rows]”
最初のテーブルの行数を示します。ネストした表には、上記と同じルールが適用されます。


例:

“&html[table_3_1_7~1_rows]”
これは、ページの3番目のテーブルのセル行1列7に含まれる最初のネストされたテーブルの行数です。

行カウントを使用する代わりに、特定のセルの存在を照会する方が多くの場合より現実的です。

例:

// row index
Set V[i] 1

label begin

// no further row?
if not html[cell_1.&V[i].1]
goto
end
endif

… process table row

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

label end

チェックボックスとラジオボタン
チェックボックスまたはラジオボタンの値は0および1で表されます。ラジオボタンを設定すると、同じグループ内の他のすべてのラジオボタンは自動的にリセットされます。

例:

Set html[radio_English] 1

HTMLページのロード時間
いくつかのアクションの後、例えば ボタンをクリックすると、新しいHTMLページをロードする必要があります。これには時間がかかる場合があります。

connectHTML コマンドはまず、ページが完全に読み込まれるまで待機してから、必要なアクションを実行します。 2分間待機した後、connectHTMLはスクリプト処理に戻ります。下記を使用すると、connectHTMLの後で、アクションが成功したかどうかを照会できます。

if not Q[ok] Return “….”
endif

前の記事

Control

次の記事

Compress