2016-12-12 22 views
0

私は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などを指し示すことができますが、ここでは何をすべきかわかりません。

答えて

関連する問題