IELINK

IELINK関数
Web上(IE)のリンクの選択 戻値 = IELINK( IE, リンク表示文字, [番号, 完全一致フラグ] )
引数
IE
IEオブジェクト
リンク表示文字
表示されているリンク項目(一部分だけでも可)
番号
リンク表示文字が同じ場合に順番指定
完全一致フラグ
Trueの時は完全に一致するものだけを(デフォルト:False)
戻値
TRUE:正常、 FALSE:処理不能

サンプルページのリンクを選択する

2種類のリンクをクリックする

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://canal22.org/sample0001/")
BusyWait(IE)

CTRLWIN(GETID("Sample0001"),MAX)
MSGBOX("IELink(IE,<#DBL>あいさつの種類<#DBL>)<#CR>を実行します")

IELink(IE,"あいさつの種類")
BusyWait(IE)

MSGBOX("IELinkによりリンクがクリックされ、<#CR>サイト内移動しました")

MSGBOX("次は同じリンク文字の場合<#CR>2番目をクリックするパターンです")

IELink(IE,"あいさつの種類",2)
BusyWait(IE)


//------
Procedure BusyWait(ie)
	repeat
		Sleep(0.2)
	until (! ie.busy) and (ie.readyState=4)
Fend

解説

このサンプルを実行すると、
サンプルページの2つある「あいさつの種類」の上が先にクリックされ、
続いて「あいさつの種類2」がクリックされます。 リンク表示文字に限られていることから、簡易的に利用するには向いていますが、
確実なページ遷移を望む場合は、IE.Navigate(URL)のほうが良いでしょう。

また、画像リンクをクリックしたい場合は、『画像リンクをクリックしたい!』をご参照ください。 さらにボタン等の選択の場合は、IESETDATAを参照してください。

タグ

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

カテゴリー:関数一覧

IEGETSRC

IEGETSRC関数
Web上(IE)にて指定タグのソースを取得
戻値 = IEGETSRC( IE, タグ名, [番号] )
引数
IE
IEオブジェクト
タグ名
ソース取得するタグ名
番号
タグの順番を指定
戻値
取得したソース

サンプルページのソースを取得する

H2とBODYタグを取得

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://canal22.org/sample0006/")
BusyWait(IE)

H2	= IEGetSrc(IE, "h2")
body	= IEGetSrc(IE, "BODY")

PRINT "h2:" + h2
PRINT "body:" + body


//------
Procedure BusyWait(ie)
	repeat
		Sleep(0.2)
	until (! ie.busy) and (ie.readyState=4)
Fend

解説

このサンプルを実行すると、
H2とBODYがタグから(ex:<h2>Sample0006</h2>)取得されるのが分かります。
この関数の用途としては、管理画面のデータなどを定期的に取得・保管しておきたい場合などに重宝します。

とくにアフィリエイター広告代理店の方など、
たくさんの管理画面を扱う方は、
うまくすると、日々数時間かかっていた作業を
定時更新の自動化で対応できるかもしれません。
興味ある人はどしどし問い合わせてください。

IEGETDATAで説明していますが、
IEGETDATAとIEGETSRCでは、値とソースの取得という違いがあるので、ご注意を!

タグ

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

カテゴリー:関数一覧

IESETDATA

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

アンケートページにデータを自動入力してみる

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://canal22.org/sample0006/")
BusyWait(IE)

IESetData(IE,"名前","name") // TEXT
IESetData(IE,"アドレス","email") // TEXT
IESetData(IE,True,"available","Yes") // RADIO
IESetData(IE,True,"PC","Yes") // RADIO
IESetData(IE,"コメントテスト","comment") // TEXTAREA


//------
Procedure BusyWait(ie)
	repeat
		Sleep(0.2)
	until (! ie.busy) and (ie.readyState=4)
Fend

解説

ごく単純なフォーム入力のスクリプトです。
最終的には、IESetData(IE,True,”submit”) // SUBMIT
このような構文で送信ボタンを押下します。

また、入力するデータ(ex:”名前”)は変数化することで、
毎回入力するデータを変更することも可能です。

勉強会では、これらを利用してログインの自動化を紹介します。

タグ

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

カテゴリー:関数一覧

IEGETDATA

IEGETDATA関数
Web上(IE)より値取得
戻値 = IEGETDATA( IE, Name, [Value, 番号] )
引数
IE
IEオブジェクト
Name
値取得するエレメントのName,もしくはタグ名を記述:”TAG=タグ名”
Value
Nameが共通の場合に Valueを指定する
Nameにてタグ名が指定された場合は、そのタグにての順番を指定
番号: Name, Value が同じ場合に順番指定
戻値
取得の値 (取得できなかった場合はEMPTYを返す)

サンプルページからH3タグを取得してみる

cnt	= 1
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://canal22.org/sample0001/")
WHILE IEGETDATA(IE,"TAG=H3",cnt ) <> EMPTY
	PRINT IEGETDATA( IE,"TAG=H3",cnt)
	cnt	= cnt + 1
WEND

解説

WHILE IEGETDATA(IE,”TAG=H3″,cnt ) <> EMPTY
は、返り値が取得できなくなるまで繰り返すことを命令しています。

そしてcntをインクリメントすることで、
IEGETDATA( IE,”TAG=H3″,1)
IEGETDATA( IE,”TAG=H3″,2)
IEGETDATA( IE,”TAG=H3″,3)
・・・

といった具合に、複数のH3タグがあっても順番に表示をするようになっています。

※注意点は、
IEGETSRCはソースの取得、IEGETDATAは値の取得であるということです。
以下のサンプルを実行すると、言わんとすることが明確になります。

この投稿の続きを読む »

タグ

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

カテゴリー:関数一覧

COMコンポーネントの開いているウィンドウを制御する(GETACTIVEOLEOBJ)

開いているウィンドウを制御する
GETACTIVEOLEOBJ(“InternetExplorer”,ウィンドウタイトル)

GETACTIVEOLEOBJ関数は、
既に開いているウィンドウを制御する場合に使います。
「ウィンドウタイトル」は制御したい対象のウィンドウタイトルを記述しますが、
一部でも構いません。 ※一部アプリでは無効

アクティブにしたウィンドウのタイトルタグを取得するサンプル

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.google.co.jp/")
BusyWait(IE)

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.yahoo.co.jp/")
BusyWait(IE)

FOR KAISU = 1 TO 5
	IE = GETACTIVEOLEOBJ("InternetExplorer.Application","Google")
	SLEEP(1)
	PRINT IEGetSrc(IE, "TITLE")
	IE = GETACTIVEOLEOBJ("InternetExplorer.Application","yahoo")
	SLEEP(1)
	PRINT IEGetSrc(IE, "TITLE")
NEXT


Procedure BusyWait(ie)
  Sleep(0.5)  // Wait
  Const TIME_OUT = 90
  tm = Gettime()
  repeat
    Sleep(0.2)
    ifb Gettime() - tm > TIME_OUT
      MsgBox("Time Out:BusyWait")
      ExitExit
    endif
  until (! ie.busy) and (ie.readyState=4)
  Sleep(0.5)
Fend

解説

このプログラムを動かすと、
GETACTIVEOLEOBJが働いていることが確認できます。

タグ

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

カテゴリー:逆引き関数

このページの先頭へ