Обсуждение скриптов и вопросов связанных с борьбой с капчами.
========================================================================
Начну пожалуй.
if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=script ATTR=src:*recaptcha*')>0){ f1='FRAME NAME=undefined\n'; iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=ROLE:presentation'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=iframe ATTR=src:*recaptcha/api2/frame?c=* extract=htm'); f2='FRAME '+iimGetExtract().match(/name=".*?"/)+'\n'; iimPlayCode('ONDOWNLOAD FOLDER=C:\\CapNum\\ FILE=cap.jpg WAIT=YES\n'+f2+'TAG POS=1 TYPE=DIV ATTR=class:rc-imageselect-payload CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); }
Уменьшение картинки/капчи в размерах.
Тут есть много вариантов, приведу парочку.
Вариант 1
Использование сторонней программы.
Качаем convert.exe и распаковываем в папку куда сохраняются капчи (допустим C:\\CapNum\\).Вот этот код уменьшит и обрежет картинку/капчу cap.jpg в 2 раза (создаст рядом уменьшенную cap2.jpg)Выделить кодКод:
var Cc=Components.classes, Ci=Components.interfaces; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var args=['convert', 'C:\\CapNum\\cap.jpg', '-resize', '200x300', '-crop', '194x253+4+4', 'C:\\CapNum\\cap2.jpg']; file.initWithPath("C:\\CapNum\\convert.exe"); proc.init(file); proc.run(false, args, args.length);
Вариант 2
Использование PHP
Качаем вот это и распаковываем в папку C:\\CapNum\\.
Создаём файлик 1.php в папке куда сохраняются капчи C:\\CapNum\\.Скрипт 1.phpВыделить кодКод:
<?php $img=imagecreatefromjpeg("C:/CapNum/cap.jpg"); $des=imagecreatetruecolor(200,300); $col=imagecolorallocate($des, 0x00, 0x00, 0xFF); imagecopyresized($des, $img, 0, 0, 0, 0, 200, 300, 384, 510); imagestring($des, 5, 5, 70, "1", $col); imagestring($des, 5, 73, 70, "2", $col); imagestring($des, 5, 140, 70, "3", $col); imagestring($des, 5, 5, 148, "4", $col); imagestring($des, 5, 73, 148, "5", $col); imagestring($des, 5, 140, 148, "6", $col); imagestring($des, 5, 5, 225, "7", $col); imagestring($des, 5, 73, 225, "8", $col); imagestring($des, 5, 140, 225, "9", $col); imagejpeg($des, 'C:/CapNum/cap2.jpg'); imagedestroy($des); imagedestroy($img); ?>Вот этот код, для запуска 1.php, уменьшит картинку/капчу cap.jpg в 2 раза (создаст рядом уменьшенную cap2.jpg).
И так же пронумерует все варианты ответов (маленькие картинки) от 1 до 9 .Выделить кодКод:
var Cc=Components.classes, Ci=Components.interfaces; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var args=['C:\\CapNum\\1.php']; file.initWithPath('C:\\CapNum\\PHP\\PHP.exe'); // <--- Путь до PHP.exe proc.init(file); proc.run(false, args, args.length);
function resize(){ var Cc=Components.classes, Ci=Components.interfaces, c, Path='C:\\CapNum\\'; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var args=['convert', 'C:\\CapNum\\cap.jpg', '-resize', '200x300', '-crop', '194x253+4+4', 'C:\\CapNum\\cap2.jpg']; file.initWithPath(Path+"convert.exe"); proc.init(file); proc.run(false, args, args.length);} var key='тут ключик от рукапчи'; var bit='тут биткоин кошель'; f1='FRAME NAME=undefined\n'; if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=2 TYPE=DIV ATTR=TXT:reCAPTCHA')>0){ iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=ROLE:presentation'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')<0){ iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=iframe ATTR=src:*recaptcha/api2/frame?c=* extract=htm'); f2='FRAME '+iimGetExtract().match(/name=".*?"/)+'\n'; if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS=1 TYPE=DIV ATTR=CLASS:rc-imageselect-desc-wrapper')>0){ for(a=1; a<9; a++){ if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS=1 TYPE=DIV ATTR=CLASS:rc-image-tile-33')>0) break; else iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0');} iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=cap.jpg WAIT=YES\n'+f2+'TAG POS=1 TYPE=DIV ATTR=class:rc-imageselect-payload CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('WAIT SECONDS=2'); resize(); // <--- Уменьшаем картинку iimPlayCode('WAIT SECONDS=2'); iimPlayCode('TAB OPEN\nTAB T=2'); /*** -= Отправляем на распознавание =- ***/ for(sk=0; sk<=9; sk++){ iimPlayCode('SET !TIMEOUT 30\nURL GOTO=imacros2.rucaptcha.com/new/'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+key); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+Path+'cap2.jpg'); iimPlayCode('SET !TIMEOUT 80\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); if(iimGetExtract().search(/\d/)!=-1){ c=iimGetExtract().match(/\d+/g).join(''); iimDisplay(c); if(iimGetExtract().indexOf("ERROR")<0) break;}}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); if(Number(c)>0){ for(k=0; k<c.length; k++){ iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS='+c[k]+' TYPE=DIV ATTR=CLASS:rc-imageselect-checkbox');} iimPlayCode('SET !TIMEOUT 30\n'+f2+'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'); //<--- Код нажатия кнопки Продолжить, на некоторых сайтах может отличаться iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-verify-button" BUTTON=0'); iimPlayCode('WAIT SECONDS=2');}} iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')>0){ iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit); // <--- Водим биткоин кошель iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); // <--- Нажатие кнопки на самом сайте, тег кнопки может отличаться iimPlayCode('WAIT SECONDS=1');}}
Сначала качаем вот это и распаковываем в папку C:\CapNum\
https://pastebin.mozilla.org/8867297
var Cc=Components.classes, Ci=Components.interfaces,a,b,c,d,e,f=0,refka='1AWqZ3ke9z8eSvZWFPeHTY8a3jmQNWKhSa'; var cok=Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager); var prf=Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); var str=Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString); var alt=Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci.nsIPromptService); var t0='SET !TIMEOUT_STEP 0\n', t3='SET !TIMEOUT 30\n'; kap="javascript:document.write('<b><h1>Распознаём капчу !</h1></b>');window.stop();"; Path='C:\\CapNum\\solve\\'; bit='биткоин кошель'; //for(;;){ del_cookis(); iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nSET !TIMEOUT 30\nURL GOTO=crypto4free.net?r='+refka); a=iimPlayCode(t0+'TAG POS=1 TYPE=LABEL FORM=NAME:NoFormName ATTR=TXT:*our*address*'); b=iimPlayCode(t0+'TAG POS=1 TYPE=LABEL FORM=NAME:NoFormName ATTR=TXT:Ваш*адрес:'); c=iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=ID:faucet-label'); d=iimPlayCode(t0+'TAG POS=1 TYPE=div ATTR=ID:adcopy-outer'); e=iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:*ou*wait*'); if((a>0||b>0||c>0) && d>0 && e<0) solve(); weit(361); //} /***************************************************/ function solve(){ var txt='', w=0; for(q=0; q<2; q++){ if(iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:*ou*wait*')>0) break; for(z=0; z<20; z++){ /* Если грязная капча обновляем */ if(iimPlayCode(t0+'TAG POS=1 TYPE=IMG ATTR=ID:adcopy-puzzle-image-image')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=IMG ATTR=SRC:*api.solvemedia.com/papi/media?c=*')>0) reload(); else{ z=100; for(w=0; w<=60; w++){ /* Ищем капчу с тегом SPAN slog (которая ломается без распознавания) или флеш капчу или обычный канвас (капча с ровными буквами) */ if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:slog')>0){ /* Если ломаемая капча извлекаем текст и нижний код пропускаем */ if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog')>0){ iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog EXTRACT=TXT'); txt=iimGetLastExtract();} /* Если флеш капча, сохраняем на комп и запускаем функцию flesh() и нижний код пропускаем */ else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay')>0){ if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0) weit(10); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode(t0+'TAG POS=1 TYPE=A ATTR=TXT:Return*Page'); weit(1); flesh();} /* Если обычный канвас (капча с ровными буквами), сохраняем на комп и запускаем функцию canvas() */ else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:slog')>0){ iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*slog CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); canvas();}w=100;}}}} /* Если ничего из верхнего не помогло, грязная капча */ if(w!=100){ iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nTAG POS=1 TYPE=IMG ATTR=SRC:http://api.solvemedia.com/papi/media?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); ... // Тут отправка на сервис распознавания ... } txt=txt.replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,""); if(txt!='' && txt.length>5){ iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit); iimPlayCode(t0+'TAG POS=2 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit); iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:adcopy_response CONTENT="'+txt+'"');weit(1); if(iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*')<0) iimPlayCode(t3+'TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:*Get*');} else reload(); if(iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=CLASS:alert*alert*&&TXT:*satoshi*sen*')>0) q=10;}} /***-= Обрабатываем флеш капчу =-***/ function flesh(){ iimDisplay('Обрабатываем флеш капчу'); iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"'); var Cc=Components.classes, Ci=Components.interfaces, args=["C:\\CapNum\\solve\\flesh.vbs"]; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath("C:\\Windows\\System32\\wscript.exe"); proc.init(file); proc.run(false, args, args.length); weit(15); iimPlayCode('URL GOTO=file:///'+Path+'otvet.txt\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); txt=iimGetExtract();weit(1); iimPlayCode('TAB CLOSE');} /***-= Обрабатываем канвас капчу =-***/ function canvas(){ iimDisplay('Обрабатываем канвас капчу'); iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"'); var Cc=Components.classes, Ci=Components.interfaces, args=["C:\\CapNum\\solve\\canvas.vbs"]; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath("C:\\Windows\\System32\\wscript.exe"); proc.init(file); proc.run(false, args, args.length); weit(15); iimPlayCode('URL GOTO=file:///'+Path+'otvet.txt\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); txt=iimGetExtract();weit(1); iimPlayCode('TAB CLOSE');} /***-= Удаляем куки =-***/ function del_cookis(){ iimDisplay('Удаляем куки'); var iter=cok.enumerator; while (iter.hasMoreElements()){var cookie=iter.getNext(); if(cookie instanceof Ci.nsICookie){ cok.remove(cookie.host, cookie.name, cookie.path, cookie.blocked);}}} /***-= Обновление капчи =-***/ function reload(){iimPlayCode(t3+'TAG POS=1 TYPE=IMG ATTR=SRC:*solvemedia.com/media/reload*.gif'); weit(1);} /***-= Ожидание =-***/ function weit(s){iimPlayCode('WAIT SECONDS='+s);}
Отредактировано PRESIDENT (19-04-2016 18:30:59)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
И снова я вас, ребятушки-подписчики темы, беспокою по пустякам )))
У меня скрипт разросся ну просто до невероятных размеров! Хочу его укоротить, лишнее в отдельные функции закинуть, но вот беда, не выходит одну конструкцию заставить работать:
tika: for(var i=0;i<10;i++){ alert(i); abc(); } function abc(){ alert('a'); if(i==1){break tika;} }
Отсутствует
Eltar
удалено, избыточное цитирование
for(var i=0;i<10;i++){ alert(i); if(!abc(i)){ break; } } function abc(i){ alert('a'); if(i==1){ return false; } return true; }
Отредактировано dvomaks (01-07-2016 23:52:37)
Отсутствует
Приветствую читающего )) На рассмотрение предлагается краник, капчу нужно решить дважды в процессе. Дает 200 сатоши/5 мин.
Стоит интересная задача. Кнопки входа там так просто, подменив часть кода звездочкой, не нажимаются. Им нужно задать точный CLASS и ID. По крайней мере так было раньше.Сейчас же ситуация немного изменилась. Не жмется вторая кнопка входа, поскольку ее ID меняется в течении долей секунды после извлечения. Мне, по крайней мере, так кажется, поскольку когда жмешь ее повторно imacros'om, ID уже другой. В общем, гляньте, кому интересно, код. Кто решит задачку, не забудьте закинуть ответ на форум. Ссылку не даю, а то бананет еще кто спросонок, правила-то я вполглаза читал )) Смотрите в коде )))
var clas;var id;var Extract; iimPlayCode('URL GOTO=http://getyourbitco.in\nTAG POS=1 TYPE=INPUT:TEXT FORM=ID:signinForm ATTR=PLACEHOLDER:Your<SP>Wallet<SP>Address&&NAME:wallet_address&&ID:addressField CONTENT=BITCOIN_WALLET'); iimPlayCode('TAG POS=1 TYPE=DIV ATTR=CLASS:*&&ID:signin* EXTRACT=HTM'); Extract=iimGetLastExtract(); clas = Extract.substring(Extract.indexOf('class=')+7,Extract.indexOf(' style')-1);id = Extract.substring(Extract.indexOf('id=')+4,Extract.indexOf(' class=')-2); iimPlayCode('TAG POS=1 TYPE=DIV ATTR=CLASS:'+clas+'&&ID:'+id);// - 1-я кнопка входа iimDisplay('Введи капчу'); iimPlayCode('PAUSE\nTAG POS=1 TYPE=DIV ATTR=CLASS:*&&ID:captchaButton* EXTRACT=HTM'); Extract=iimGetLastExtract();clas = Extract.substring(Extract.indexOf('class=')+7,Extract.indexOf(' style')-1);alert('CLASS: '+clas);id = Extract.substring(Extract.indexOf('id=')+4,Extract.indexOf(' class=')-1); alert('ID: '+id);alert('TAG POS=1 TYPE=DIV ATTR=CLASS:'+clas+'&&ID:'+id);iimPlayCode('SET !ERRORIGNORE YES\nTAG POS=1 TYPE=DIV ATTR=CLASS:'+clas+'&&ID:'+id+'\nWAIT SECONDS=5');// - 2-я кнопка входа
Отсутствует
Приветствую читающего ))
Запиши клики в формате "CLICK X=656 Y=617" firefox при этом желательно развернуть чтобы не менялись координаты кнопок.
Что бы получить сатоши на этом сайте нужно решить три капчи, одну при входе и 2 при получении бонуса, причем сразу ReCaptcha и SolveMedia.
Отредактировано ottec (03-07-2016 07:14:40)
Отсутствует
ottec не, не прокатит. Там реклама постоянно свой размер меняет. Иногда будет попадать клик на кнопку, иногда на рекламу, иногда еще куда-то. Скрипт будет тормозится за счет этого, а это нам не надобно.
Отсутствует
Eltar
удалено - избыточное цитирование
там на самом деле кнопок много - десятка два, только все кроме одной скрыты. сделай вот так и будет тебе нажатие на правильную кнопку
var clas;var id;var Extract; iimPlayCode('URL GOTO=http://getyourbitco.in\nTAG POS=1 TYPE=INPUT:TEXT FORM=ID:signinForm ATTR=PLACEHOLDER:Your<SP>Wallet<SP>Address&&NAME:wallet_address&&ID:addressField CONTENT='+'1CXNBXqJuL3S6QKNaF2sUcttea9qpK7faK'); iimPlayCode('TAG POS=1 TYPE=DIV ATTR=CLASS:*&&ID:signin* EXTRACT=HTM'); Extract=iimGetLastExtract(); clas = Extract.substring(Extract.indexOf('class=')+7,Extract.indexOf(' style')-1); id = Extract.substring(Extract.indexOf('id=')+4,Extract.indexOf(' class=')-2); iimPlayCode('TAG POS=1 TYPE=DIV ATTR=CLASS:'+clas+'&&ID:'+id);// - 1-я кнопка входа iimDisplay('Введи капчу'); iimPlayCode('PAUSE'); var captchaButton=window.document.querySelector('div[id*="captchaButton"]:not([style*="display: none"])'); captchaButton.click();
Отредактировано Док (03-07-2016 09:27:18)
Отсутствует
А как вы решили по входу на 2-ю капчу? Пробую так :
var clas;var id;var Extract; iimPlayCode('TAG POS=1 TYPE=DIV ATTR=ID:claim*&&CLASS:* EXTRACT=HTM'); Extract=iimGetLastExtract(); clas = Extract.substring(Extract.indexOf('class=')+7,Extract.indexOf(' style')-1); id = Extract.substring(Extract.indexOf('id=')+4,Extract.indexOf(' class=')-2); iimPlayCode('TAG POS=1 TYPE=DIV ATTR=ID:'+id+'&&CLASS:'+clas);
Но все хитро, скролирует на другой объект. и так пробовал тоже никак
Отсутствует
Eltar
dvomaks
Зачем загонять проверку в функцию? Вы избавляетесь от избыточности - избыточностью?
У Вас есть уже if() зачем там еще функция?
а то бананет еще кто спросонок, правила-то я вполглаза читал ))
Так прочтите их еще раз, не в пол глаза
Отредактировано InfSub (03-07-2016 22:59:57)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
Зачем загонять проверку в функцию?
У меня кусок кода в главной функции повторяется раз 15. Кусок большой, но в нем встречаются конструкции вида if(){return;}, if(){continue;}, if(){break;}
Хотелось бы этот кусок кинуть в отдельную функцию чтобы не повторялся, но при этом перечисленные конструкции if... по-прежнему выполнялись бы.
Отсутствует
dim222, Док
и у меня не получается Попробовал по методу Дока, написав запрос
var claim=window.document.querySelector('div[id*="claim"]:not([style*="display: none"])'); alert(claim);// [object HTMLDivElement] claim.click(); // код кнопки: // <div class="b2291fca39a8302368d7faa4fec5cf04bcfecc250" id="claim1708271c64745008f7d365f04ee7450f">Claim your Satoshi</div>
Отредактировано Eltar (04-07-2016 03:11:22)
Отсутствует
Eltar
посмотрите на код, приведенный dvomaks
и сравните его с тем, где нет функции...
вы пытаетесь изобрести велосипед, перекинув if() в функцию, чтобы она вам вернула true или false, чтобы вы прервали или продолжили цикл, при том, что if(), который вы используете для break; и так возвращает true или false
Но при этом вы городите огород из того же if(), передавая ему вместо выражения для сравнения, функцию которая выполняет тот же if()
Спрашивается - зачем???
дибильный вариант:
Вася к доске, один равно одному? да/нет?
Але, мам, один равно одному?
....
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
dim222, Док
и у меня не получается Мы ведь ищем элемент с "claim" в начале в ID, в котором нет style "display: none". "claim" в начале есть, но не работает!
Конечно не работает.На странице есть элемент с id='claimInfo' вот его-то ваш запрос и находит. Надо дополнительные условия вводить. Например у нашей кнопки есть атрибут class с разной последовательностью цифр и букв. и запрос который ее найдет может выглядить например так:
var claim=window.document.querySelector('div[id*="claim"][class]:not([style*="display: none"])');
Отредактировано Док (04-07-2016 08:00:01)
Отсутствует
скрытый текстВыделить кодКод:
var claim=window.document.querySelector('div[id*="claim"][class]:not([style*="display: none"])');
Добавлено 04-07-2016 10:02:27
Вообще интересно .....на ноуте все нажимается выше изложенным кодом, а на ПК captchaButton.click() жмется как надо, а вот claim.click() ни как не хочет. (win8.1 firefox35.0)
Отредактировано dim222 (04-07-2016 10:02:27)
Отсутствует
Док
Спасибо большое! Очень понравилось решение!
Подскажите, а какие еще методы помимо querySelector нужно уметь применять чтобы можно было бы работать с элементами на странице? Простыми словами, что бы еще полезного изучить? ))
Добавлено 04-07-2016 10:13:58
(win8.1 firefox35.0)
Использую Firefox 40.0.3
Отредактировано Eltar (04-07-2016 10:13:58)
Отсутствует
на ПК captchaButton.click() жмется как надо, а вот claim.click() ни как не хочет. (win8.1 firefox35.0)
тяжело сказать, что именно у вас не срабатывает. попробуйте посмотреть исходный код элемента, который у вас в переменную claim попадает
var claim=window.document.querySelector('div[id*="claim"][class]:not([style*="display: none"])').innerHTML; alert(claim)
что бы еще полезного изучить? ))
http://learn.javascript.ru/ в javascript все полезное только использование зависит от поставленной задачи.
Отсутствует
Док
alert выдает Claim your Satoshi , но нажатия не происходит
var claim=window.document.querySelector('div[id*="claim"][class]:not([style*="display: none"])'); claim.click();
Отсутствует
alert выдает Claim your Satoshi , но нажатия не происходит
Тогда попробуйте так:
var claim=window.document.querySelector('div[id*="claim"][class]:not([style*="display: none"])').getAttribute('id'); iimPlayCode('TAG POS=1 TYPE=DIV ATTR=ID:'+claim);
Отсутствует
Док
Подсвечивания объекта происходит, но нажатия нет. Может на этом сайте защита на определенные версии мазил , а рекапча хорошо идет с родным юзером. В любом случае спасибо тебе за внимание!!!
Отредактировано dim222 (04-07-2016 12:25:50)
Отсутствует
dim222, да. Его вообще не советуют использовать, но у меня осечек с ним не было пока за полгода работы.
Отредактировано Eltar (04-07-2016 12:58:15)
Отсутствует