私はcaptchaを解決しようとしていますが、残りのタスクを進めていますが、私が間違った答えを得た場合は、フィードバックが正しいかどうかを返すことができますが、captchaを解決できませんもう一度すぐに、ページが間違ったキャプチャの場合、最終的に割り当てられた時間とタイムアウトの後に開始するようになりますが、私は再びキャプチャ解決領域の部分をループしたいと思います。キャプチャの答えはここ日間権利さえあれば私のコードが終了する細かい開始を働いている私はループに!VAR3は、キャプチャを意味する値2が持っている場合は、ステップ6にステップ2からのコードをしたいコード条件付きiMacroでループする|
SET apikey G9W API KEY GO HERE
SET !VAR1 NULL
SET !VAR2 NULL
SET !VAR3 NULL
SET !VAR4 NULL
'Step 1: Open WEBSITE
SET !ERRORIGNORE YES
URL GOTO=URL TO GO
WAIT SECONDS=10
URL GOTO=javascript:window.scrollBy(0,450)
'Step 2: Save Captcha ScreenShot
FILEDELETE NAME=d:\test.jpg
'SET !ERRORIGNORE NO
ONDOWNLOAD FOLDER=d:\ FILE=test.jpg
WAIT SECONDS=10
TAG POS=1 TYPE=DIV ATTR=ID:adcopy-puzzle-image CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT
WAIT SECONDS=5
'Step 3: Send Captcha For Solving to 9kw
TAB OPEN
TAB T=2
URL GOTO=http://www.9kw.eu/grafik/form.html
TAG POS=1 TYPE=INPUT ATTR=NAME:apikey CONTENT={{apikey}}
TAG POS=1 TYPE=INPUT ATTR=NAME:prio CONTENT=0
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:selfsolve CONTENT=NO
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:confirm CONTENT=NO
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:case-sensitive CONTENT=NO
TAG POS=1 TYPE=INPUT ATTR=NAME:source CONTENT=imacros
TAG POS=1 TYPE=INPUT ATTR=NAME:file-upload-01 CONTENT=d:\test.jpg
TAG POS=1 TYPE=INPUT ATTR=TYPE:submit
SET !EXTRACT_TEST_POPUP NO
SET !TIMEOUT_STEP 180
TAG POS=1 TYPE=INPUT ATTR=NAME:captchaid EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}
'Clean the !EXTRACT variable for the next task
SET !EXTRACT NULL
'Extract the characters that are recoginzed from the picture of captcha.
TAG POS=1 TYPE=INPUT ATTR=NAME:result EXTRACT=TXT
WAIT SECONDS=1
TAB CLOSE
'Step 4: Check the captcha answer (text or nothing like #EANF# = Extraction Anchor Not Found)
SET !VAR2 EVAL("if (\"{{!EXTRACT}}\" == \"#EANF#\") {var x = \"\";} else {var x = \"{{!EXTRACT}}\";} x;")
'Clean the !EXTRACT variable for the next task
SET !EXTRACT NULL
'Step 5: Fill the recognized characters to the verification box
TAB T=1
TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response CONTENT={{!VAR2}}
SET !TIMEOUT_STEP 40
WAIT SECONDS=5
SET !ERRORIGNORE YES
TAG POS=1 TYPE=INPUT:SUBMIT ATTR=ID:subbmit
WAIT SECONDS=5
'Step 6: Check and send the captcha feedback back to the captcha service (OK:1, NotOK:2, EN: Right/False, DE: Richtig/Falsch)
SET !EXTRACT NULL
SET !TIMEOUT_STEP 10
TAG POS=1 TYPE=P ATTR=TXT:Wrong<SP>Captchas EXTRACT=TXT
SET !VAR3 EVAL("if (\"{{!EXTRACT}}\" == \"#EANF#\") {var x = \"1\";} else {var x = \"2\";} x;")
TAB OPEN
TAB T=2
SET !TIMEOUT_STEP 60
URL GOTO=http://www.9kw.eu/index.cgi?source=imacros&action=usercaptchacorrectback&apikey={{apikey}}&correct={{!VAR3}}&id={{!VAR1}}
WAIT SECONDS=2
TAB CLOSE
TAB T=1
SET !VAR4 {{!VAR3}}
'Step 7 NEXT Tasks
です私はマクロを3つのマクロに分けようとしました。ステップ1〜2を含む2番目のマクロとステップ7以降を含む3番目のマクロを分割してjsスクリプトで呼び出すようにしました。続く
//Step 1 Open Website
iimPlay("test1.iim");
//STEP 2 to 6 Fill Captcha untill right
for(i=2;i<=1;i--)
{
iimSet("{{!VAR4}}",i);
iimPlay("test2.iim");
}
//STEP 7 Go About doing your thing
iimPlay("test3.iim");
しかし、これは通常、私はJSファイル内のすべてのコードを入れてみたテスト1スキップテスト2とテストパート3をプレイし、そこに二パーを同じことをしてみてくださいとしてまた、VAR3の値を必要とするか、ループを制御して値が1になるまで繰り返します。
この2番目の部分をループさせてください。私はiimファイルでそれを行うことはできませんjavaと私は通常DOSでプログラミングを知らないのですが、GOTO LABELなどを指し示すことができますが、ここでは何をすべきかわかりません。