altClick

Web上(IE)の指定したalt属性を含む画像をクリックします。クリックに成功した場合はTrue、失敗した場合はFalseを返します。

構文
  1. Boolean = altClick( IE, alt, num = 1, fullMatchFlg = FALSE )
引数
IE
IEオブジェクト
alt
クリックするalt属性
num
何番目をクリックするか
fullMatchFlg
完全一致した要素をクリックする場合はTrue、部分一致した要素の場合はFalseを指定
戻値
TRUE
成功
FALSE
失敗

プログラム

//////////////////////////////////////////////////
// 【引数】
//   IE : IEオブジェクト 
//   alt : クリックするalt属性 
//   num : 何番目をクリックするか 
//   fullMatchFlg : 完全一致した要素をクリックする場合はTrue、部分一致した要素の場合はFalseを指定 
// 【戻値】
//   TRUE : 成功、FALSE : 失敗 
//////////////////////////////////////////////////
FUNCTION altClick(IE, alt, num = 1, fullMatchFlg = FALSE)
	DIM cnt = 0
	IMG_LST = IE.document.Images
	IFB num = -1 THEN
		FOR n = 0 TO IMG_LST.length - 1
			SELECT fullMatchFlg
				CASE TRUE
					IF IMG_LST.Item(n).Alt = alt THEN cnt = cnt + 1
				CASE FALSE
					IF POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN cnt = cnt + 1
			SELEND
		NEXT
		RESULT = cnt
	ELSE
		DIM flg = FALSE
		FOR n = 0 TO IMG_LST.length - 1
			SELECT fullMatchFlg
				CASE TRUE
					IFB IMG_LST.Item(n).Alt = alt THEN
						cnt = cnt + 1
						IFB cnt = num THEN
							IMG_LST.Item(n).Click()
							flg = TRUE
							BREAK
						ENDIF
					ENDIF
				CASE FALSE
					IFB POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN
						cnt = cnt + 1
						IFB cnt = num THEN
							IMG_LST.Item(n).Click()
							flg = TRUE
							BREAK
						ENDIF
					ENDIF
			SELEND
		NEXT
		RESULT = flg
	ENDIF
FEND

解説

  1. 2行目
    	DIM cnt = 0
    画像の数を代入する変数cntを宣言。
  2. 3行目
    	IMG_LST = IE.document.Images
    Webページ上にある画像情報を取得。
  3. 4,14,39行目
    	IFB num = -1 THEN
    		…
    	ELSE
    		…
    	ENDIF
    変数numが-1ならば5行目>>>、それ以外ならば15行目>>>
  4. 5-13行目
    		FOR n = 0 TO IMG_LST.length - 1
    			SELECT fullMatchFlg
    				CASE TRUE
    					IF IMG_LST.Item(n).Alt = alt THEN cnt = cnt + 1
    				CASE FALSE
    					IF POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN cnt = cnt + 1
    			SELEND
    		NEXT
    		RESULT = cnt
    画像の数だけループ。fullMatchFlg(完全一致フラグ)がTRUEでn番目の画像のalt属性と変数altが完全一致していたら、変数cntをインクリメントする。fullMatchFlg(完全一致フラグ)がFALSEでn番目の画像のalt属性に変数altが含まれて(部分一致して)いたら、変数cntをインクリメント。変数cntを戻り値として返す。
  5. 15行目
    		DIM flg = FALSE
    画像をクリックしたかどうかを代入する変数。クリックされたらTrue。
  6. 16-37行目
    		FOR n = 0 TO IMG_LST.length - 1
    			SELECT fullMatchFlg
    				CASE TRUE
    					IFB IMG_LST.Item(n).Alt = alt THEN
    						cnt = cnt + 1
    						IFB cnt = num THEN
    							IMG_LST.Item(n).Click()
    							flg = TRUE
    							BREAK
    						ENDIF
    					ENDIF
    				CASE FALSE
    					IFB POS(alt, IMG_LST.Item(n).Alt) <> 0 THEN
    						cnt = cnt + 1
    						IFB cnt = num THEN
    							IMG_LST.Item(n).Click()
    							flg = TRUE
    							BREAK
    						ENDIF
    					ENDIF
    			SELEND
    		NEXT
    画像の数だけループ。n番目のalt属性が変数altと完全一致または部分一致したら、変数cntをインクリメント。cnt=numでその画像をクリックしflgをTrueにして、FOR文を抜ける。
  7. 38行目
    		RESULT = flg
    変数flgを戻り値として返す。

関連記事

CHKIMG (スクリプト関数)
指定画像が画面上にあるかチェックしあればその情報を返します。
SAVEIMG (スクリプト関数)
SAVEIMGは、第一引数に指定した絶対パス・相対パスに画像を保存する関数です。第一引数を省略した場合クリップボードに、第二引数に0を指定でスクリーン全体をコピーします。
getBitmap
引数に指定したビットマップ画像のサイズ(px)・幅(px)・高さ(px)・ビットの深さ(bpp)を配列で返します。
BusyWait
引数に指定したInternetExplorerオブジェクトの読み込みが完了するのを待ちます。
getIEObj
引数に指定した「タイトル」または「URL」を含むInternetExplorerオブジェクトを返します。数値nを指定した場合、n番目に開いたInternetExplorerオブジェクトを取得します。負の数で後ろからn番目。IELINK関数で開かれた新しいタブのInternetExplorerオブジェクトを取得したいときに使います。
IENoticeBar
Web上でファイルをダウンロードしたときに出る通知バーの制御を行います。ダウンロードしたファイル名を返します。
getTableData
Web上のtableタグのデータを取得し、二次元配列に格納します。
IEBoot
InternetExplorerオブジェクトを生成します。iexplorer.exeのプロセスが残っているときにCREATEOLEOBJ関数でInternet Explorerを起動するとエラーが出ることがあるので、それを回避するための関数です。
DownloadFile
指定したURLのファイルをダウンロードします。第一引数にダウンロードするファイルのURL、第二引数にダウンロード先のフォルダ名、第三引数にダウンロードするファイル名を指定します。ダウンロードに成功した場合はTrue、失敗した場合はFalseを返します。