IESETDATA

Web上に値を設定することができます。第一引数にInternetExplorerオブジェクト、第二引数に設定する値、第三引数に値を設定するエレメントのNameもしくはタグ名を記述します。

構文
戻値 = IESETDATA( IE, 値, Name, [Value, 番号] )
引数
IE
IEオブジェクト
設定する値
Name
値取得するエレメントのNameもしくはタグ名を記述:"TAG=タグ名"
Value
ラジオボタン等で Nameが共通の場合に Valueを指定する
Nameにてタグ名が指定された場合は、そのタグにての順番を指定
番号
Name, Value が同じ場合に順番指定
戻値
TRUE
正常
FALSE
処理不能

第三引数にタグ名が指定された場合、第四引数には数字(順番)以外では"ID=xxx"、"innerHTML=xxx"、"innerText=xxx" の指定が可

第三引数に"TAG=IMG"が指定された場合には、第四引数には画像のパスの指定が可

getElementsByNameでの書き方

IESETDATAはDocument.getElementsByNameで書くこともできます。

IESETDATA(IE, 値, Name, Value, 番号)
DIM elements = IE.document.getElementsByName(名前)
elements.Item(番号 - 1).innerText = 値

「属性=値」で要素を特定できるときの書き方

name属性がなく「属性=”値”」でその要素を特定できるとき、第三引数に「属性=値」を指定することによりその要素をクリックすることができます。

「value=値」のとき「value=」は省略可。

IESETDATA(IE, TRUE, "", "value=ログイン")

プログラム実行例

Googleでの検索結果を取得

DIM IE = CREATEOLEOBJ("InternetExplorer.Application") IE.Visible = TRUE IE.Navigate("http://google.com") BusyWait(IE) IESETDATA(IE, INPUT("検索ワードを入力"), "q") IESETDATA(IE, TRUE, "btnK") BusyWait(IE) DIM elements = IE.document.getElementsByClassName("rc") FOR element IN elements PRINT element.getElementsByClassName("LC20lb").Item(0).textContent PRINT element.getElementsByClassName("s").Item(0).textContent PRINT "----------" NEXT IE.Quit ////////////////////////////////////////////////// // 【引数】 // IE : IEオブジェクト // 【戻値】 // ////////////////////////////////////////////////// PROCEDURE BusyWait(IE) TRY SLEEP(0.500) REPEAT SLEEP(0.010) UNTIL !IE.Busy AND IE.readyState = 4 EXCEPT SLEEP(5.000) ENDTRY FEND

楽天PointClubでランクと保有ポイント数を取得する

DIM IE = CREATEOLEOBJ("InternetExplorer.Application") IE.Visible = TRUE IE.Navigate("https://point.rakuten.co.jp/") BusyWait(IE) DIM elements // ログインする elements = IE.document.getElementsByClassName("name") IFB elements.length = 0 THEN IELINK(IE, "ログイン") BusyWait(IE) IESETDATA(IE, READINI("楽天", "ID", "楽天.INI"), "u") // ユーザID IESETDATA(IE, READINI("楽天", "PASS", "楽天.INI"), "p") // パスワード IESETDATA(IE, TRUE, "submit") // ログイン BusyWait(IE) ENDIF // ランク elements = IE.document.getElementsByClassName("rank") elements = elements.Item(0).getElementsByTagName("em") PRINT elements.Item(0).innerText // ポイント elements = IE.document.getElementsByClassName("point-total") elements = elements.Item(0).getElementsByTagName("dd") PRINT elements.Item(0).innerText IE.Quit ////////////////////////////////////////////////// // 【引数】 // IE : IEオブジェクト // 【戻値】 // ////////////////////////////////////////////////// PROCEDURE BusyWait(IE) TRY SLEEP(0.500) REPEAT SLEEP(0.010) UNTIL !IE.Busy AND IE.readyState = 4 EXCEPT SLEEP(5.000) ENDTRY FEND
あなたは ゴールド会員 です
総保有ポイント
559
[楽天] ID=info@example.com PASS=***
結果
ゴールド会員
559

この記事は役に立ちましたか?
役に立った 役に立たなかった