Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [spoiler][noindex]http://адрес_сайта/название_страницы[/noindex][/spoiler]
Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [spoiler][code]ваш код[/code][/spoiler]
или выложите на сайт «Pastebin».
При размещении объемных материалов, используйте тег "Spoiler" - [spoiler]ваш текст[/spoiler]
или выложите на сайт «Pastebin».
Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [spoiler][img]http://ссылка_на_изображение[/img][/spoiler]
.
«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон
«Не каждый вопрос заслуживает ответа.»
Сайрус
Отсутствует
kani339
for(var i=1;iimPlayCode('SET !DATASOURCE имя_файла.csv\n SET !DATASOURCE_LINE '+i)==1;i++){ .... };
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Здравствуйте.
Пере домною возникла задача. Которою не могу сам решить и прошу вашей помощи.
Написал такой скрипт, вот его начало:
SET !VAR0 EVAL("{{!LOOP}}*1") EVENT TYPE=CLICK SELECTOR="#main>TABLE:nth-of-type(2)>TBODY>TR>TD:nth-of-type(2)>TABLE:nth-of-type(3)>TBODY>TR:nth-of-type({{!VAR0}})>TD:nth-of-type(2)>A" BUTTON=0
...
*... продолжение (клики, вставки текста и так далее)
Но хотелось, что бы Аймакрос всё делал сам на 78 страницах.
Код переключения страниц на сайте, выглядит так:
TAG POS=1 TYPE=A ATTR=TXT:2 (вторая страница) TAG POS=1 TYPE=A ATTR=TXT:3 (третья страница) TAG POS=1 TYPE=A ATTR=TXT:4 (четвёртая страница)
...
*... и так далее, до 78 страницы
Желаемая схема работы Аймакроса:
'(первая строка) EVENT TYPE=CLICK SELECTOR="#main>TABLE:nth-of-type(2)>TBODY>TR>TD:nth-of-type(2)>TABLE:nth-of-type(3)>TBODY>TR:nth-of-type(1)>TD:nth-of-type(2)>A" BUTTON=0 '(десятая строка) EVENT TYPE=CLICK SELECTOR="#main>TABLE:nth-of-type(2)>TBODY>TR>TD:nth-of-type(2)>TABLE:nth-of-type(3)>TBODY>TR:nth-of-type(10)>TD:nth-of-type(2)>A" BUTTON=0 '(двадцатая строка) EVENT TYPE=CLICK SELECTOR="#main>TABLE:nth-of-type(2)>TBODY>TR>TD:nth-of-type(2)>TABLE:nth-of-type(3)>TBODY>TR:nth-of-type(20)>TD:nth-of-type(2)>A" BUTTON=0
(Все строки (гиперссылки) одинаковые, разница только в значении)
После кликов поочерёдно всех 20-ти строк на первой странице, следовал на страницу номер 2, код ниже
Затем на второй странице, кликал по 20 новым ссылкам, их коды как на первой странице, одинаковы, что и на первой, код ниже
'(первая строка) EVENT TYPE=CLICK SELECTOR="#main>TABLE:nth-of-type(2)>TBODY>TR>TD:nth-of-type(2)>TABLE:nth-of-type(3)>TBODY>TR:nth-of-type(1)>TD:nth-of-type(2)>A" BUTTON=0 '(десятая строка) EVENT TYPE=CLICK SELECTOR="#main>TABLE:nth-of-type(2)>TBODY>TR>TD:nth-of-type(2)>TABLE:nth-of-type(3)>TBODY>TR:nth-of-type(10)>TD:nth-of-type(2)>A" BUTTON=0 '(двадцатая строка) EVENT TYPE=CLICK SELECTOR="#main>TABLE:nth-of-type(2)>TBODY>TR>TD:nth-of-type(2)>TABLE:nth-of-type(3)>TBODY>TR:nth-of-type(20)>TD:nth-of-type(2)>A" BUTTON=0
Затем после кликов этих 20 ссылок, переходил страницу номер 3 (код ниже)
И так далее, до 78 страницы
Коды кликов по страницам одинаковые, кроме последнего числа в нём, которое схоже с номерами страниц:
Спасибо за помощь!
InfSub
Отсутствует
Даниил955447112
js и циклы вам в помощь
все, в принципе элементарно, кроме, разве что, той путаницы, которую вы зачем-то устраиваете с номерами ссылок
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Даниил955447112
var i = 1; while (i <= 78) { a(); i++; iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:'+i+''); } function a () { var i = 1; while (i <= 20) { iimPlayCode('EVENT TYPE=CLICK SELECTOR="#main>TABLE:nth-of-type(2)>TBODY>TR>TD:nth-of-type(2)>TABLE:nth-of-type(3)>TBODY>TR:nth-of-type('+i+')>TD:nth-of-type(2)>A" BUTTON=0') }; };
iMacros скрипты на заказ!
Отсутствует
Hamzat
зачем здесь while() в данной ситуации более удобен for()
выделять второй цикл, в отдельную функцию, может и красиво, но на мой взгляд, тут совершенно не нужно
сути вопроса, вы не раскрыли, в данном случае, нужно использовать еще и распределение ссылок по страницам (нечетная/четная), в зависимости от того, больше 10 номер ссылки или нет
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Не могу разобраться с break, с остановкой скрипта, при обнаружении текстового элемента на странице.
Скрипт должен делать указанное количество циклов в переменной "количество", а при обнаружении определённого текста на странице, прервать цикл.
В этом коде скрипта есть 2 условия if и 1 else.
С двумя условиями if и с else получается всё.
А как сделать с одним условие if и без else, чтобы каждый раз не указывать 2 if-условия и else?
for (var i=1;i<=количество;i++){ iimPlay("01.iim",60); if (iimPlayCode("SET !TIMEOUT_STEP 1 \n TAG POS=1 TYPE=A ATTR=TXT:Добавить<SP>в<SP>друзья")>0){ iimPlay("02.iim",60); if (iimPlayCode("SET !TIMEOUT_STEP 1 \n TAG POS=1 TYPE=INPUT:SUBMIT ATTR=ID:hook_FormButton*")>0){ break } }else{i--;} }
Циклов 10.
При обнаружении слова "Текст" циклы прерываются и дальше идёт воспроизведение следующего макроса.
А пока не обнаружит слова "Текст" на странице, выполнять должен указанное количество циклов.
for (var i=1;i<=10;i++){ iimPlay("01.iim",60); if (iimPlayCode("SET !TIMEOUT_STEP 1 \n TAG POS=1 TYPE=A ATTR=TXT:текст")>0){ break } }
Как сделать с одним условием if и с одним break ?
Отредактировано Алим (07-06-2016 22:54:05)
Истина в последней инстанции
Отсутствует
Алим
не понятно, чего вы пытаетесь добиться, так как, не совсем понятен смысл, выполняемых, первым скриптом, действий
в случае второго приведенного фрагмента, break срабатывает всегда, когда выполняется вышестоящее условие, в данном случае, на странице, был найден текст "Добавить в друзья", после чего и сработал break
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
Вот допустим вот этот код скрипта, выполняет бесконечный цикл, когда не находит слово "Мо гости" на странице.
При обнаружении "Мои гости", скрипт останавливается.
А как сделать, чтобы не бесконечный был цикл, а выполнял 10 циклов?
for (var i=1;i<=10;i++){ iimPlay("ent.iim",60); if (iimPlayCode("SET !TIMEOUT_STEP 1 \n TAG POS=2 TYPE=DIV ATTR=TXT:Мои<SP>гости")>0){ break }else{i--;} }
for (var i=1;i<=10;i++){ iimPlay("ent.iim",60); if (iimPlayCode("SET !TIMEOUT_STEP 1 \n TAG POS=2 TYPE=DIV ATTR=TXT:Мои<SP>гости")<0){ break }else{i;} }
Отредактировано Алим (07-06-2016 23:06:19)
Истина в последней инстанции
Отсутствует
Алим
Убери else
for(i=1;i<=10;i++){ iimPlay("ent.iim",60); if(iimPlayCode("SET !TIMEOUT_STEP 1\nTAG POS=2 TYPE=DIV ATTR=TXT:Мои<SP>гости")>0) break; }
две чёрточки
Отредактировано PRESIDENT (07-06-2016 23:09:51)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Hamzat
сорри, перечитал задачу Даниил955447112'а, видимо, я что-то напутал с условием
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Подскажите, как правильно выбрать рандомное имя класса из двух переменных в iim
SET upvote "arrow login-required access-required up" SET downvote "arrow down login-required access-required" SET rand EVAL("Math.floor(Math.random()* ({{upvote}} - {{downvote}}) + {{downvote}})"); TAG POS=1 TYPE=DIV ATTR=CLASS:{{rand}}
Отсутствует
Подскажите, как правильно выбрать рандомное имя класса из двух переменных в iim
Текстовый рандом для выбора одного из восьми почтовых доменов я делал так:
SET email EVAL("var a=['@newmail.ru','@mail.ru','@yandex.ru','@gmail.com','@yandex.com','@yandex.kz','@yandex.ua','@ya.ru'],r=Math.floor(Math.random()*8 + 0);a[r];") TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:Email CONTENT={{email}}
Отсутствует
kani339
Подскажите, как правильно выбрать рандомное имя класса из двух переменных в iim
Рандомный выбор включая min и max
iMacros скрипты на заказ!
Отсутствует
kani339
Math.random() - математическая функция, она не работает со словами, как заставить работать со словами, смотри выше пример от udalov
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
P.S знаю что более подходящая тема "разработка", просто там долго отвечают);
iMacros скрипты на заказ!
Отсутствует
Здравствуйте!
Подскажите, как можно сделать так, чтоб аймакрос отслеживал изменение IP-адреса и работая в цикле, начинал бы следующий цикл только когда поменяестя IP-адрес?
Вот например: запускаем скрипт (работающий в цикле), он фиксирует IP-адрес и начинает работу. Когда исполнился первый цикл, то проверяет изменился ли IP-адрес. Если нет, то ждёт пока изменится и только после этого начинает второй цикл. И так далее.
Может для этого есть какие-то сторонние приложения или дополнения?
Или лучше написать код, который бы периодически посылал запрос на какой-нибудь сайт типа 2ip . ru, извлекал бы IP адрес и сравнивал бы с образцом и если находил бы различия, то начинал бы следующий цикл, и одновременно заменял бы новый IP-адрес в качестве образца для следующего сравнения и т.д.?
Или проще задействовать какие-то дополнения или приложения (если подходящие имеются)?
Отредактировано dvitkovs (10-06-2016 14:28:02)
Отсутствует
Посмотри в интерфейсе роутера, где нить внешний айпи показывает.
Если что можешь гет запросом спарсить инфу.
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Посмотри в интерфейсе роутера, где нить внешний айпи показывает.
Если что можешь гет запросом спарсить инфу.
В принципе можно легко узнать ip-адрес если в командной строке написать cmd > ipconfig Находим IP-адрес:
Отсутствует
dvitkovs
my_ip(); alert(b); function my_ip(){ var CC=Components.Constructor; var a=CC("@mozilla.org/xmlextras/xmlhttprequest;1")(); a.open('GET','http://192.168.1.1/',false); a.send(null); b=a.response; return b;}
Отредактировано PRESIDENT (10-06-2016 20:59:26)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Отсутствует
Ну зайди в роутер посмотри, где то да должен быть,
полазь по меню, потом в запросе подправь урл
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
А 2ip и аналоги, что, не рулят уже?
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует