Tutorial Kiến thức iMacros căn bản cho người mới

rongbay

Hero
Joined
May 17, 2011
Messages
1,049
Reactions
493
MR
0.000
Em ko rành lắm về imacro , bác nào rảnh rỗi giúp em đoạn code này với:
em muốn chạy vòng lặp 1000 lần
trong mỗi vòng lặp thực hiện tao tác : lấy giá trị của một input text , đảo 2 giá trị cuối của ô vừa lấy ra, gán giá trị mới này vào input lúc nãy.
Ví dụ: input text có giá trị 56789, em muốn nó chuyển thành 56798....
Thanks các bác
 

manhtienhp92

Hero
Verified
Joined
Jun 24, 2014
Messages
1,107
Reactions
1,023
MR
0.103
Follow me on Facebook Chat with me via Skype
thím hít ít lá đu đủ thôi
:confused: aha e hiểu rùi, bữa giờ cứ lộn xộn iim vs js mà đôi khi k hiểu sao nó k chạy đc. iimSet thì iimPlayCode k chạy đc, mà !VAR thì js k chạy đc, dễ ngáo vs mấy cái này thiệt. học hành k đến nơi đến chốn nó vậy á, bác đừng nóng :p
 
Em ko rành lắm về imacro , bác nào rảnh rỗi giúp em đoạn code này với:
em muốn chạy vòng lặp 1000 lần
trong mỗi vòng lặp thực hiện tao tác : lấy giá trị của một input text , đảo 2 giá trị cuối của ô vừa lấy ra, gán giá trị mới này vào input lúc nãy.
Ví dụ: input text có giá trị 56789, em muốn nó chuyển thành 56798....
Thanks các bác
Cái này dùng java làm được, dùng hàm length đo chiều dài chuỗi inpux text, dùng substring cắt chuỗi để ở vị trí (length-2), dùng hàm
toString() đảo lại chuỗi con vừa cắt ra, rồi replace lại chuỗi gốc xong thay thế vào input text . cách thức mình biết là như vậy còn viết code hoàn chỉnh thì chắc cũng mò mẫm cả buổi mới viết đc :D
 
thanks bác, em chưa biết dùng js kết hợp với imacro, muốn dùng imacro thuần túy không biết có được không.

Nếu dùng js không thì em mò cũng ra nhưng khổ cái js hình như không xác định trang web được load xong chưa, thao tác đó thực hiện chưa vì trang web em cần làm load lúc nhanh lúc chậm, có lúc bị lỗi log out,,,mấy cái này thì imacro nó tự giải quyết được khi nào thao tác nào thực hiện xong thì mới thực thi lệnh tiếp theo....
 
thanks bác, em chưa biết dùng js kết hợp với imacro, muốn dùng imacro thuần túy không biết có được không.

Nếu dùng js không thì em mò cũng ra nhưng khổ cái js hình như không xác định trang web được load xong chưa, thao tác đó thực hiện chưa vì trang web em cần làm load lúc nhanh lúc chậm, có lúc bị lỗi log out,,,mấy cái này thì imacro nó tự giải quyết được khi nào thao tác nào thực hiện xong thì mới thực thi lệnh tiếp theo....
nền tảng imacros cũng viết từ javascrip mà ra, các lệnh cơ bản trên file iim thì k làm đc mấy việc phức tạp đc, bị hạn chế nhiều nên phải kết hợp vs java nữa thì chạy tốt hơn. Mà cậu rành về js rồi thì mấy cái này sao mà thành vấn đề đc
 
Last edited:

bayvuvu

Hero
Joined
Feb 3, 2015
Messages
2,503
Solutions
1
Reactions
671
MR
3.249
Chat with me via Skype
nền tảng imacros cũng viết từ javascrip mà ra, các lệnh cơ bản trên file iim thì k làm đc mấy việc phức tạp đc, bị hạn chế nhiều nên phải kết hợp vs java nữa thì chạy tốt hơn. Mà cậu rành về js rồi thì mấy cái này sao mà thành vấn đề đc
C ơi. giúp m với lỗi set wrong format of SET command
SET !DATASOURCE
TAB T=1
URL GOTO=https://google.com
SET !DATASOURCE C:\Users\daika minh\Desktop\Acc.csv
SET !DATASOURCE_LINE {{!LOOP}}
SET !DATASOURCE_COLUMNS 2
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:login.php?do=login ATTR=ID:navbar_username CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:pASSWORD FORM=ACTION:login.php?do=login ATTR=ID:navbar_password CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:login.php?do=login ATTR=*
 

xiaoken

Junior
Joined
Aug 5, 2014
Messages
266
Reactions
92
MR
0.053
C ơi. giúp m với lỗi set wrong format of SET command
SET !DATASOURCE
TAB T=1
URL GOTO=https://google.com
SET !DATASOURCE C:\Users\daika minh\Desktop\Acc.csv
SET !DATASOURCE_LINE {{!LOOP}}
SET !DATASOURCE_COLUMNS 2
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:login.php?do=login ATTR=ID:navbar_username CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:pASSWORD FORM=ACTION:login.php?do=login ATTR=ID:navbar_password CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:login.php?do=login ATTR=*

!LOOP 1 là bắt đầu lấy dữ liệu dòng đầu tiên, muốn dòng bao nhiêu thì đổi
Code:
SET !DATASOURCE C:\Users\daika minh\Desktop\Acc.csv
SET !LOOP 1
SET !DATASOURCE_LINE {{!LOOP}}
TAB T=1
URL GOTO=https://google.com
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:login.php?do=login ATTR=ID:navbar_username CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:pASSWORD FORM=ACTION:login.php?do=login ATTR=ID:navbar_password CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:login.php?do=login ATTR=*
 

mr.coi

Hero
Joined
May 16, 2010
Messages
3,061
Reactions
1,072
MR
0.034
nền tảng imacros cũng viết từ javascrip mà ra, các lệnh cơ bản trên file iim thì k làm đc mấy việc phức tạp đc, bị hạn chế nhiều nên phải kết hợp vs java nữa thì chạy tốt hơn. Mà cậu rành về js rồi thì mấy cái này sao mà thành vấn đề đc
em vẫn kẹt thằng recaptcha v2. vẫn chưa giải quyết dc,

nay qua thử thằng 9kw.eu

Code:
SET prio 1

TAB T=1
URL GOTO=https://www.google.com/recaptcha/api2/demo

' Step 2: Save the captcha key and show the field for the answer
URL GOTO=javascript:(function(){var<SP>x<SP>=<SP>document.getElementById("g-recaptcha-response");x.style.display<SP>=<SP>"";})();

Code tést của nó chạy thì oke.
Vấn đề là site em là submit email. xong mới đến trang captcha.
vậy chỉnh sao cái url goto kia để là cái trang captcha mới vậy bác.
Em thử :
Code:
ADD !EXTRACT {{!URLCURRENT}}
SET !VAR1 {{!URLCURRENT}}
URL GOTO={{!VAR1}}

Thì nó k hiện cái khung điền captcha step 2.
hix
 
mình k hiểu vấn đề của bạn lắm, URL GOTO trong step 2 mà đổi sang URLCURRENT thì sao mà nó show đc nữa cậu
ví dụ em có trang có captcha chạy trên trình duyệt rồi.
Submit mail -> sang captcha
nên nếu URL GOTO = trang captcha là sẽ bị lỗi.
e muốn sao cho cách nào cái step 2 kia là chạy luôn trang captcha hiện tại trên trình duyệt.

Code của nó

Code:
VERSION BUILD=8920312 RECORDER=FX
SET !EXTRACT_TEST_POPUP NO
SET !ERRORIGNORE NO
SET !TIMEOUT_PAGE 999
SET !TIMEOUT_STEP 999
TAB CLOSEALLOTHERS
'
' This imacros script created by 9kw.eu
' Find more here: http://www.9kw.eu/
'
' The script fill the captcha of recaptcha v2 demo (interactive).
'
' Last update: 17 March 2018
'
' For iMacros 8.9.7
' See http://forum.imacros.net/viewtopic.php?t=26543
' http://wiki.imacros.net/iMacros_for_Firefox#How_to_Downgrade
'
' Note for users with firefox with the message "Firefox prevented this page from automatically reloading.":
' UNCHECK the option "warn me when pages try to redirect" in your browser
' You find the checkbox under Options > Advanced > General > Accessibility

' Step 1: Config for 9kw.eu for your apikey
SET apikey your_apikey

'And priority (prio 1-20)
SET prio 1

TAB T=1
URL GOTO=https://www.google.com/recaptcha/api2/demo

' Step 2: Save the captcha key and show the field for the answer
URL GOTO=javascript:(function(){var<SP>x<SP>=<SP>document.getElementById("g-recaptcha-response");x.style.display<SP>=<SP>"";})();

' Grab html code with sitekey
TAG POS=1 TYPE=DIV ATTR=CLASS:g-recaptcha EXTRACT=HTM
'TAG POS=1 TYPE=DIV ATTR=ID:*recaptcha* EXTRACT=HTM

' Grab the sitekey
SET !ERRORIGNORE YES
SET datasitekey1 EVAL("var sitekey = \"{{!EXTRACT}}\";var rx = new RegExp('sitekey=\"([^\"]+)\"','i'); var x = sitekey.match(rx)[1];  x;")
SET datasitekey2 EVAL("'{{!EXTRACT}}'.match(/anchor\?k=(.+?)&/)[1];")
SET datasitekey EVAL("if(\"{{datasitekey1}}\".length > 15){s = \"{{datasitekey1}}\"}else{s = \"{{datasitekey2}}\"};s;")
SET !ERRORIGNORE NO

' Or set your sitekey
'SET datasitekey 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-

'Syntaxcheck: API Key, prio
SET apikey EVAL("var s=\"{{apikey}}\"; if(s.match(/^[a-zA-Z0-9]+$/) && s.length <= 50 && s.length >= 5) s; else MacroError(\"API Key is wrong.\")")
SET prio EVAL("var s=\"{{prio}}\", d = parseFloat(s); if(d >= 0 && d <= 20) d; else MacroError(\"Value(Prio) is not in the set range.\")")
SET pageurl EVAL("domain = \"{{!URLCURRENT}}\".split(\"://\")[1];domain.split(\"/\")[0];")

'Step 3: Open the a new tab, and go to 9kw.eu, and submit the captcha picture
TAB OPEN
TAB T=2
URL GOTO=http://www.9kw.eu/grafik/form_base64.html
'The apikey is used to identify each of our customers, which you can get from the our page. It is assigned to the CONTENT.
TAG POS=1 TYPE=INPUT ATTR=NAME:apikey CONTENT={{apikey}}
'Priority in our system like min. 0 to max. 20 (cost +0-20)
TAG POS=1 TYPE=INPUT ATTR=NAME:prio CONTENT={{prio}}
'Options for the form. See more under http://www.9kw.eu/grafik/form_base64.html and http://www.9kw.eu/api.html
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:base64 CONTENT=NO
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:interactive CONTENT=YES
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:case-sensitive CONTENT=NO
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/index.cgi ATTR=NAME:nomd5 CONTENT=YES
TAG POS=1 TYPE=INPUT ATTR=NAME:maxtimeout CONTENT=3999
TAG POS=1 TYPE=INPUT ATTR=NAME:source CONTENT=imacros
TAG POS=1 TYPE=INPUT ATTR=NAME:oldsource CONTENT=recaptchav2
TAG POS=1 TYPE=INPUT ATTR=NAME:pageurl CONTENT={{pageurl}}
TAG POS=1 TYPE=INPUT ATTR=NAME:file-upload-01 CONTENT={{datasitekey}}
'Submit the formdata to 9kw.eu
TAG POS=1 TYPE=INPUT ATTR=TYPE:submit
'Extract the captchaid from your captcha submit
TAG POS=1 TYPE=INPUT ATTR=NAME:captchaid EXTRACT=TXT
SET captchaid {{!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
'Step 4: Check the captcha answer (text or nothing like #EANF# = Extraction Anchor Not Found)
SET answer EVAL("if (\"{{!EXTRACT}}\" == \"#EANF#\") {var x = \"\";} else {var x = \"{{!EXTRACT}}\";} x;")
'Clean the !EXTRACT variable for the next task
SET !EXTRACT NULL
TAB CLOSE

'Display extracted data (only for debug)
'PROMPT {{captchaid}}

'Step 5: Fill the recognized characters to the verification box
TAB T=1
TAG POS=1 TYPE=TEXTAREA ATTR=ID:g-recaptcha-response CONTENT={{answer}}

'js callback (function "onSuccess" in the htmlcode under "data-callback") with g-recaptcha-response field
'URL GOTO=javascript:(function(){document.getElementById("g-recaptcha-response").innerHTML="{{answer}}";onSuccess();})();

'js callback with answer (function "recaptchaSolved" in the htmlcode under "data-callback")
'URL GOTO=javascript:(function(){recaptchaSolved("{{answer}}");})();

'With ba.l.callback (js callback without definition in the code)
'URL GOTO=javascript:(function(){___grecaptcha_cfg.clients[0].ba.l.callback("{{answer}}");})();

'Click the Verify(Submit) button
'EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0
WAIT SECONDS=1
FRAME F=0
EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>FORM>FIELDSET>UL>LI:nth-of-type(6)>INPUT" BUTTON=0
WAIT SECONDS=3
 
ví dụ em có trang có captcha chạy trên trình duyệt rồi.
Submit mail -> sang captcha
nên nếu URL GOTO = trang captcha là sẽ bị lỗi.
e muốn sao cho cách nào cái step 2 kia là chạy luôn trang captcha hiện tại trên trình duyệt.
theo mình hiểu là trên site cậu nó có 1 cái recaptcha, submit email xong nó popup thêm 1 trang mới hoặc 1 tab mới có cái recaptcha nữa, mà cậu muốn giải cái đầu tiên thôi đúng k? nếu vậy thì k dùng URLCURRENT dc, phải set url có captcha cần giải cho nó. vd nnư
SET pageurl google.com
thử xem đc k
 
Last edited:
theo mình hiểu là trên site cậu nó có 2 cái recaptcha, cậu muốn giải cái đầu tiên thôi đúng k? nếu vậy thì k dùng URLCURRENT dc, phải set url có captcha cần giải cho nó. vd nnư
SET pageurl google.com
thử xem đc k
Là điền mail vào trang A, nhấn submit, nó sang trang B, Trang B hiện recaptcha v2 với nút submit.

Nếu mà mở chính tab B ( Url goto ) là sẽ bị lỗi :D

Thay URL goto bằng pageurl là dc ạ?
em test thử coi sao

Trang B.
upload_2018-4-8_19-39-41.png
 
Là điền mail vào trang A, nhấn submit, nó sang trang B, Trang B hiện recaptcha v2 với nút submit.

Nếu mà mở chính tab B ( Url goto ) là sẽ bị lỗi :D

Thay URL goto bằng pageurl là dc ạ?
em test thử coi sao

Trang B.
View attachment 111340
vậy cho nó close TAB B đó rồi quay về TAB A rồi giải captcha có phải gọn k :D
 

Announcements

Forum statistics

Threads
426,441
Messages
7,177,096
Members
178,880
Latest member
thethai212
Back
Top Bottom