JavaScriptプログラムに関する各種メモ書き:タグ「Firefox」での検索

ブラウザ自動運転マクロ、iMacrosの細かいテクニック

・コメントアウト【 .iim ファイル】

' 先頭がクォーテーションはコメントと見なされます
' コメント 
' コメント

・2秒間ウェイトする(待つ)【 .iim ファイル】

WAIT SECONDS=2

・全てのコマンド実行時に x秒間ウェイトする(待つ)【 .iim ファイル】

SET !REPLAYSPEED SLOW
SET !REPLAYSPEED MEDIUM
SET !REPLAYSPEED FAST
SLOW   : 2秒待つ
MEDIUM : 1秒待つ
FAST    : 0秒待つ(待たない。)

・コマンドライン(URL,検索バー)からの実行

マクロ「mymacro.iim」を実行します。

 imacros://run/?m=mymacro.iim

実は拡張子 .js のマクロも実行できます

 imacros://run/?m=mymacro.js

フォルダ「myfolder」の中に入った「mymacro.iim」を実行するには「/」を「%5C」で置き換えます

 imacros://run/?m=myfolder%5Cmymacro.iim

Aタグを使ってHTMLから起動することもできます

<a href="imacros://run/?m=myfolder%5Cmymacro.iim">マクロ起動</a>

・JavaScriptからのマクロ実行【 .js ファイル】

var test;
test = "CODE:";
test += "URL GOTO=www.google.com \n";
var rt = iimPlay(test);
alert(rt); // 1 以下の時エラー

・iMacrosの .js からDOMオブジェクトを操作する【 .js ファイル】

window.content.document.getElementById("xxx");

・iMacrosの .js からconsole.log で出力する【 .js ファイル】

window.console.log( 'TEST!!!' );

・iMarcorsにエラーがあった時に止まらないようにする

SET !ERRORIGNORE YES

・iMacrosの1命令ごとのタイムアウトを設定する

(ステップごとのタイムアウトを 2秒 に設定する)

SET !TIMEOUT_STEP 2 

・重いページを読み込む時にページの読み込みを待たない

(ページ読み込みのタイムアウトを 1秒 に設定する)

SET !TIMEOUT_PAGE 1

・フォームの入力テキストにスペースを入力する

(スペースの代わりに <SP> を入力します。)
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:myform.php ATTR=* CONTENT=日本語<SP>太郎

・XPathで要素を指定してクリックする

普通に xpath が使えます (xpath式はダブルクォーテーションで囲むこと)

 TAG XPATH="//*[@id='my_id']/tr/td[3]/div/a"

・target="_blank" のリンクでウィンドウを開くとタブ番号がおかしくなる

firefoxで新規ウィンドウをタブで開く場合 target="_blank" をマクロで踏むとタブ番号がおかしくなりその後のマクロでエラーが出ることがあります。 この場合はリンクを押す代わりにリンク先を取得して imacros で画面遷移しましょう

・iMacrosでスクリーンショットを撮る

http://qiita.com/nori4k/items/2e55bc346062d5c490b8

リファレンス http://imacros.doorblog.jp

No.971
04/25 18:31

edit

iMacros
エラー対処
DOM
Firefox

iMacrosでマクロによる変数代入とJavaScriptによる変数代入

iMacrosではマクロ内で変数 (VAR1 〜 VAR9)が使用できます。
が、そもそもJavaScriptも使用できるので変数を使用したい場合はJavaScriptで扱うのもいいと思います。

iMacrosで変数を扱うサンプル ( imacros_debug.html )

表示用のHTMLページを用意してどこかのサーバにアップしておきます

<html lang="ja">
<head>
<meta charset="utf-8">
<title>iMacros debug</title>
</head>
<body>
<form action="test.cgi" name="FM">
!VAR1 : <input type="text" name="var1" id="var1" size="30"><br>
!VAR2 : <input type="text" name="var2" id="var2" size="30"><br>
!VAR3 : <input type="text" name="var3" id="var3" size="30"><br>
</form>
</body>
</html>

iMacrosで変数を扱うサンプルマクロ(拡張子は .js で使用すること) ( set_var.js )

ページ xxxx.xxxx.com/imacros_debug.html を開いてその中のフォームに変数を代入します。

var test;
test = "CODE:";
test += "URL GOTO=xxxx.xxxx.com/imacros_debug.html "+"\n";
test += 'SET !VAR1 "テスト 太郎"' + " \n";
test += 'SET !VAR2 "てすと たろう"' + " \n";
test += 'SET !VAR3 "000-111-2222"' + " \n";
test += "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:FM ATTR=NAME:var1 CONTENT={{!VAR1}} \n";
test += "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:FM ATTR=NAME:var2 CONTENT={{!VAR2}} \n";
test += "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:FM ATTR=NAME:var3 CONTENT={{!VAR3}} \n";
iimPlay(test);
alert('imacrosで変数をフォームに代入しました');

test2 = "CODE:";
test2 += "URL GOTO=xxxx.xxxx.com/imacros_debug.html "+"\n";
iimPlay(test2);
window.document.getElementById("var1").value = 'ジャヴァ スクリプト';
window.document.getElementsByName("var2")[0].value = 'じゃば すくりぷと';
window.document.getElementsByName("var3")[0].value = '000-999-8888';
alert('JavaScriptで変数をフォームに代入しました');

Firefox(やChrome)を立ち上げ、そこからiMacrosを立ち上げてそこから set_var.js を起動すると、1回目はマクロでフォームに変数を代入します。2回目はJavaScriptで代入します。

No.970
09/02 17:00

edit

iMacros
Firefox