IE.document.forms.elementsに情報を入力して送信

IE.document.forms.elementsではエレメントの情報取得に加え、
値をセットすることもできます。
フォームのオブジェクトに値を自動入力し、
サブミット(送信)するには以下のようにします。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true
IE.navigate("http://canal22.org/sample0012/")
 
REPEAT
 SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate = 4

//「名前」=大小山田を入力
IE.document.forms[0].elements[0].value = "大小山田"
//「都道府県」=北海道を選択
IE.document.forms[0].elements[1].selectedIndex =  3
//「性別」=女性にチェック
IE.document.forms[0].elements[3].checked = True
//「好きな色」=赤、青、黄にチェック
IE.document.forms[0].elements[5].checked = True
IE.document.forms[0].elements[6].checked = True
IE.document.forms[0].elements[7].checked = True
//「パスワード」=1234567890を入力
IE.document.forms[0].elements[8].value = "1234567890"
//「備考」=改行を含む文字列を入力
IE.document.forms[0].elements[9].value = "Hola!<#CR>こんにちは"

MSGBOX("一度リセットします")
IE.document.forms[0].reset()

MSGBOX("再度入力します")

//「名前」=大小山田を入力
IE.document.forms[0].elements[0].value = "大小山田"
//「都道府県」=北海道を選択
IE.document.forms[0].elements[1].selectedIndex =  3
//「性別」=女性にチェック
IE.document.forms[0].elements[3].checked = True
//「好きな色」=赤、青、黄にチェック
IE.document.forms[0].elements[5].checked = True
IE.document.forms[0].elements[6].checked = True
IE.document.forms[0].elements[7].checked = True
//「パスワード」=1234567890を入力
IE.document.forms[0].elements[8].value = "1234567890"
//「備考」=改行を含む文字列を入力
IE.document.forms[0].elements[9].value = "Hola!<#CR>こんにちは"

MSGBOX("サブミットします※プログラムは用意していないため「ページが無い」エラーがでます")
IE.document.forms[0].ok.click()

nameを指定するパターンも可能

nameプロパティから取得した値でも指定可能です。
IE.document.forms[0].onamaeとやればname=onamaeとなっているオブジェクトを
指定可能です。
例えばラジオボタンのオブジェクトの場合、同名のものが複数あるケースが多いので
名前指定時にも配列番号で、細かく特定することができます。
以下のスクリプトで見てみましょう。

この投稿の続きを読む »

タグ

2012年10月8日 | コメントは受け付けていません。 |

カテゴリー:UWSCとInternetExplorer

IE.document.forms.elementsから取得できるエレメントの情報

IE.document.forms.elementsからエレメントの情報取得が行えます。
formsというフォームオブジェクトの中には
入力項目等を備えたelementsオブジェクトがあります。
テキストボックスやセレクトボックスなどの各入力項目から
以下のような情報が取得できます。

エレメント
エレメントの総数
IE.document.forms[n].elements.length
エレメントのオブジェクト(フォーム、エレメントともにnに0からの数値を指定)
タイプ
IE.document.forms[n1].elements[n2].type
※selectボックスは”select-one”と取得
名前
IE.document.forms[n1].elements[n2].name
IE.document.forms[n1].elements[n2].value

チェック状態(true=チェック有り、false=チェック無し)
IE.document.forms[n1].elements[n2].checked
checkboxやradioボタンから取得します

クラス名
IE.document.forms[n1].elements[n2].className
id
IE.document.forms[n1].elements[n2].id
uniqueID
IE.document.forms[n1].elements[n2].uniqueID
フォーカス順序(Tabでの移動順)
IE.document.forms[n1].elements[n2].tabIndex
タグ名
IE.document.forms[n1].elements[n2].tagName
クラス名
IE.document.forms[n1].elements[n2].className
セレクトボックス固有のオブジェクト

selectボックスはその中にoptionsオブジェクトがあり、
選択肢の情報を有しています。

選択されているインデックス

IE.document.forms[n1].elements[n2].selectedIndex

選択肢の数(elementsではselectボックスを選択)

IE.document.forms[n1].elements[n2].options.length

選択肢の表示名

IE.document.forms[n1].elements[n2].options[n3].text

選択肢の値

IE.document.forms[n1].elements[n2].options[n3].value

初期選択値か否か(true=初期選択値、false=初期選択値ではない

IE.document.forms[n1].elements[n2].options[n3].defaultSelected

インデックス(0からの番号)

IE.document.forms[n1].elements[n2].options[n3].index

選択状態(true=選択されている、false=選択されていない)

IE.document.forms[n1].elements[n2].options[n3].selected

チェックボックス、ラジオボタン固有のオブジェクト
チェックされているか(true=チェックされている、false=チェックされていない

IE.document.forms[n1].elements[n2].checked

初期状態でチェックされているか(true=チェックされている、false=チェックされていない

IE.document.forms[n1].elements[n2].defaultChecked

というわけで、
具体的にスクリプトを実行させて、結果を見てみましょう。

実行時のイメージ動画は下記の通りです。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true
IE.navigate("http://canal22.org/sample0005/")

REPEAT
 SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate = 4

FOR n = 0 TO (IE.document.forms.length -1)

 PRINT "<" + (n+1) + "目のフォーム><#CR>"

    PRINT "■エレメントの数:" + IE.document.forms[n].elements.length + "<#CR>"
    PRINT "  エレメントのタイプと名前と値:<#CR>"
    PRINT "  └(type) IE.document.forms[n].elements[i].type" 
    PRINT "  └(name) IE.document.forms[n].elements[i].name"
    PRINT "  └(value) IE.document.forms[n].elements[i].value"
    PRINT "  └(checked) IE.document.forms[n].elements[i].checked"
  FOR i = 0 TO (IE.document.forms[n].elements.length -1)
    PRINT "    └(type:name) " + IE.document.forms[n].elements[i].type + ":" + IE.document.forms[n].elements[i].name
    PRINT "      └(value) " + IE.document.forms[n].elements[i].value
    PRINT "      └(className) " + IE.document.forms[n].elements[i].className
    PRINT "      └(id) " + IE.document.forms[n].elements[i].id
    PRINT "      └(uniqueID) " + IE.document.forms[n].elements[i].uniqueID
    PRINT "      └(tabIndex) " + IE.document.forms[n].elements[i].tabindex
    PRINT "      └(tagName) " + IE.document.forms[n].elements[i].tagName
    
      //セレクトボックスの情報を取得
      IFB IE.document.forms[n].elements[i].type = "select-one"
       PRINT "      └(selectedIndex) " + IE.document.forms[n].elements[i].selectedIndex
       FOR cin = 0 TO (IE.document.forms[n].elements[i].options.length - 1)
       PRINT "        └(options.text) " + IE.document.forms[n].elements[i].options[cin].text
       PRINT "        └(options.value) " + IE.document.forms[n].elements[i].options[cin].value
       PRINT "        └(options.defaultSelected) " + IE.document.forms[n].elements[i].options[cin].defaultSelected
       PRINT "        └(options.index) " + IE.document.forms[n].elements[i].options[cin].index
       PRINT "        └(options.selected) " + IE.document.forms[n].elements[i].options[cin].selected
       NEXT

      ENDIF

      //チェックボックスの情報を取得
      IFB IE.document.forms[n].elements[i].type = "checkbox" OR IE.document.forms[n].elements[i].type = "radio"
       PRINT "      └(checked) " + IE.document.forms[n].elements[i].checked
       PRINT "      └(defaultChecked) " + IE.document.forms[n].elements[i].defaultChecked
      ENDIF


  NEXT
  PRINT "<#CR>---------------<#CR>"

NEXT

nameを指定するパターンでもOK

IE.document.forms[n1].elements[n2]と配列番号で指定していますが、
もちろんnameプロパティから取得した値でも指定可能です。
IE.document.forms[0].onamaeとやればname=onamaeとなっているオブジェクトを
指定可能です。
例えばラジオボタンのオブジェクトの場合、同名のものが複数あるケースが多いので
名前指定時にも配列番号で、細かく特定することができます。
以下のスクリプトで見てみましょう。

この投稿の続きを読む »

タグ

2012年7月24日 | コメントは受け付けていません。 |

カテゴリー:UWSCとInternetExplorer

このページの先頭へ