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óngthím hít ít lá đu đủ thôi
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àmEm 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
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 đề đcthanks 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....
C ơi. giúp m với lỗi set wrong format of SET commandnề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=INPUTASSWORD 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=*
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=*
em vẫn kẹt thằng recaptcha v2. vẫn chưa giải quyết dc,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
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>"";})();
ADD !EXTRACT {{!URLCURRENT}}
SET !VAR1 {{!URLCURRENT}}
URL GOTO={{!VAR1}}
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ậuVấ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.
ví dụ em có trang có captcha chạy trên trình duyệt rồi.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
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
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ư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.
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.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
vậy cho nó close TAB B đó rồi quay về TAB A rồi giải captcha có phải gọn kLà đ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
Thay URL goto bằng pageurl là dc ạ?
em test thử coi sao
Trang B.
View attachment 111340
nó k phải là mở tab mới, mà nó đi tiếp bác à,vậy cho nó close TAB B đó rồi quay về TAB A rồi giải captcha có phải gọn k
nếu thay thì thay đoạn nàyThay URL goto bằng pageurl là dc ạ?
đi tiếp rồi thì làm gì còn captcha ban đầu nữa mà giải chỉ có dùng BACKnó k phải là mở tab mới, mà nó đi tiếp bác à,