Правила оформления сообщений в данном топике:
Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [spoiler][noindex]http://адрес_сайта/название_страницы[/noindex][/spoiler]
Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [spoiler][code]ваш код[/code][/spoiler]
или выложите на сайт «Pastebin».
При размещении объемных материалов, используйте тег "Spoiler" - [spoiler]ваш текст[/spoiler]
или выложите на сайт «Pastebin».
Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [spoiler][img]http://ссылка_на_изображение[/img][/spoiler]
.
«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон
«Не каждый вопрос заслуживает ответа.»
Сайрус
Отсутствует
переписал все на iim и JS как упавляющий логикой iim-ов
как вариант, все зависит от логики скрипта, не везде удобно/нужно создавать iim-файлы под 1-3 строки кода, если же код достаточно большой и неизменен, то да - так работать должно быстрее и с меньшей нагрузкой на диск
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
одной строкой - можно записать так:
скрытый текстВыделить кодКод:
SET !VAR1 EVAL("var i=8,r='',w='qwertyuiopasdfghjklzxcvbnm',m=w.length,p;while(i--){p=Math.floor(Math.random()*(m));r=r+w.charAt(p);};")
Благодарю! Так даже лучше.
Отредактировано dvitkovs (08-11-2015 23:53:11)
Отсутствует
spy686
Отредактировано PRESIDENT (09-11-2015 00:44:50)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
spy686
скрытый текстПробовал когда то:
специально запускал две мазилки, с одинаковыми кодами,
один на iim-e другой такой же обёрнут в js. Разницы абсолютно ни какой
А если не видно разницы, зачем ...
Удалено
Отсутствует
Товарищи, благодарю тех, кто оказал помощь в написании генератора случайных слов. Работает хорошо.
Но тут загвоздка в том, что почтовый сервер рамблера устроен так, что не принимает ввод пароля, при регистрации, в автомате. То есть: если я вручную ввожу пароль, то всё нормально. И внизу окошка появляется полосочка, показывающая надёжность пароля.
Отсутствует
dvitkovs
используй EVENT для ввода пароля (Запись => Record options => Experimental event recording mode)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
dvitkovs
используй EVENT для ввода пароля (Запись => Record options => Experimental event recording mode)
Получилось! Ура!!!
Благодарю!
Отсутствует
Всем приветы:)
- Вопрос №1 об использовании xpath в iim скриптах
- Среда: "VERSION BUILD=8601111 RECORDER=FX", Firefox 25.0.1
- Подозреваю, что дело в пробелах
- экстрацию произвожу отсюда:
VERSION BUILD=8601111 RECORDER=FX TAG XPATH="//div[normalize-space(@class)="cell<SP>in-area-cell<SP>middle-cell"][1]/descendant::a[@title="Phone"]/span[2]" EXTRACT=TXT ADD !EXTRACT {{!URLCURRENT}} SAVEAS TYPE=EXTRACT FOLDER=* FILE=YellowpagescomauFirst.csv
//div[normalize-space(@class)="cell in-area-cell middle-cell"] [1]/descendant::a[@title="Phone"]/span[2]
На imacros wiki предлагают проверять xpath выражения расширением 'xpath checker', он показывает, что такая конструкция корректна и выдаёт нужный мне результат:
TAG XPATH="//div[normalize-space(@class)="cell<SP>in-area-cell<SP>middle-cell"][1]/descendant::a[@title="Phone"]/span[2]" EXTRACT=TXT
Тогда результат такой:
Спасибо.
Отредактировано zaskock (10-11-2015 20:41:41)
Отсутствует
А чем тебе обычный TAG POS формат не нравится
или
TAG POS=1 TYPE=DIV ATTR=CLASS:call-to-action<SP>first EXTRACT=TXT TAG POS=2 TYPE=DIV ATTR=CLASS:call-to-action<SP>first EXTRACT=TXT TAG POS=3 TYPE=DIV ATTR=CLASS:call-to-action<SP>first EXTRACT=TXT
Отредактировано PRESIDENT (10-11-2015 21:04:22)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Подскажите пожалуйста такой вопрос:
В браузере в адресной строке появляется ссылка в таком формате file:///C:/test/Text.txt и тогда появляется список строк которых мне надо копировать по одной при каждом цикле. в данный момент у меня копируются сразу 10 строк,а мне надо по одной.
Отсутствует
Здравствуйте, не могли бы мне помочь с написанием джава скрипта?
Алгоритм выполнения:
1)Поиск на странице определенного слова в случае если нет заданного слова ждем пока не появится
2)После нахождения слова вписываем в строку (на пример 1)
3)Нажимаем на кнопку отправить
4)Ждем 30 секунд
5.1)Если на странице пишет ошибка в определенной строке в коде то нажать кнопку на странице сброс и идем к пункту 1 пропуская 2 пункт
5.2)Если на странице пишет принято (в той же строке что и 5.1) идем к пункту 1
Отсутствует
Gergi
iimPlayCode('SET !DATASOURCE C:\\test\\Text.txt\nSET !DATASOURCE_LINE '+i+'\nSET !EXTRACT {{!COL1}}'); alert(iimGetExtract());
roma12975
Где iim код ?
Отредактировано PRESIDENT (10-11-2015 21:22:20)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
код элементов страницы могу только дать(кнопок, строк)
1)TAG POS=1 TYPE=SPAN ATTR=ID:banner 2)TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:Amount CONTENT=1 3)TAG POS=1 TYPE=BUTTON ATTR=TXT:Отправить 5)TAG POS=1 TYPE=BUTTON ATTR=TXT:Сброс (кнопка) TAG POS=2 TYPE=DIV ATTR=TXT: (строка в которой появятся принято или ошибка)
InfSub
Отредактировано roma12975 (10-11-2015 21:51:44)
Отсутствует
roma12975
Может возникнуть проблема, если слово ошибка и принято всегда есть на странице, а только скрывается стилями.
for( ;; ){ iimPlayCode('WAIT SECONDS=1'); if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=SPAN ATTR=ID:banner')>0){ // <--- Если найдено слово, то выполнится код в кавычках iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:Amount CONTENT=1') iimPlayCode('TAG POS=1 TYPE=BUTTON ATTR=TXT:Отправить') iimPlayCode('WAIT SECONDS=30'); } <--- окончание кода if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 код тега ошибка')>0) // <--- если есть тег ошибка, то жать кнопку сброс (строка ниже) iimPlayCode('TAG POS=1 TYPE=BUTTON ATTR=TXT:Сброс'); }
Отредактировано PRESIDENT (10-11-2015 22:09:57)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
PRESIDENT
Спасибо но по моему не то. Я строки через контрл - ц копирую по одной строке (вернее хочу по одной)
я так понимаю через !EXTRACT контент не копируется в буфер обмена? Может есть вариант экстрактить в буфер обмена? Было бы идеально.
Отредактировано Gergi (10-11-2015 22:08:05)
Отсутствует
Gergi
Выделить кодКод:
var text='Текст для теста'; const clipboardHelper=Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper); clipboardHelper.copyString(text); alert('Попробуй вставить куда нибудь текст из буфера обмена, нажми Ctrl+V');
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
PRESIDENT
Спасибо. Но есть 1 нюанс в строке где может выйти слово ошибка есть числа и они бывают разные
Добавлено 10-11-2015 22:51:20
можно ли как-то через екстракт сделать?
Добавлено 10-11-2015 22:54:07
а в этой строчке после ATTR=ID:banner писать TXT:слово
if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=SPAN ATTR=ID:banner ')>0)
Отредактировано roma12975 (10-11-2015 22:55:40)
Отсутствует
я не могу использовать вместо "[1]" конструкцию "[{{!LOOP}}]" внутри xpath-выражения
Оказывается могу, вопрос решён
- Подозреваю, что дело в пробелах
Ошибся, - дело было в кавычках вида "xxx", которые достаточно было заменить на 'xxx'
А чем тебе обычный TAG POS формат не нравится
долго объяснять, но в итоге получилось вот такое, может кому пригодится:
VERSION BUILD=8601111 RECORDER=FX 'if requested tag is absent do not wait for it to appear SET !TIMEOUT_STEP 0 'LOOP defines the # of the parent node to avoid extraction from the next node in case of target parameter is not specified in current listing 'extracts name from the <A> tag of the specified class: TAG XPATH="//div[normalize-space(@class)='cell in-area-cell middle-cell'][{{!LOOP}}]/descendant::a[@class='listing-name']" EXTRACT=TXT 'extracts phone# from the <span> tag of the <A> tag with title attribute equal to Phone: TAG XPATH="//div[normalize-space(@class)='cell in-area-cell middle-cell'][{{!LOOP}}]/descendant::a[@title='Phone']/span[2]" EXTRACT=TXT 'extracts fax# from the <span> tag of the <A> tag with title attribute equal to Fax: TAG XPATH="//div[normalize-space(@class)='cell in-area-cell middle-cell'][{{!LOOP}}]/descendant::a[@title='Fax']/span[2]" EXTRACT=TXT 'extracts address in htm format (with all the attributes) from <P> tag of the specified class which: TAG XPATH="//div[normalize-space(@class)='cell in-area-cell middle-cell'][{{!LOOP}}]/descendant::p[@class='listing-address mappable-address mappable-address-with-poi']|//div[normalize-space(@class)='cell in-area-cell middle-cell'][{{!LOOP}}]/descendant::p[@class='listing-address mappable-address']" EXTRACT=HTM 'extracts address in txt format from <P> tag of the specified class which: TAG XPATH="//div[normalize-space(@class)='cell in-area-cell middle-cell'][{{!LOOP}}]/descendant::p[@class='listing-address mappable-address mappable-address-with-poi']|//div[normalize-space(@class)='cell in-area-cell middle-cell'][{{!LOOP}}]/descendant::p[@class='listing-address mappable-address']" EXTRACT=TXT 'extracts title from <A> tag of the specified class which is email: TAG XPATH="//div[normalize-space(@class)='cell in-area-cell middle-cell'][{{!LOOP}}]/descendant::a[@data-email]" EXTRACT=TITLE 'extracts url from <A> tag of the specified class: TAG XPATH="//div[normalize-space(@class)='cell in-area-cell middle-cell'][{{!LOOP}}]/descendant::a[normalize-space(@class)='contact contact-main contact-url']" EXTRACT=HREF 'extracts current url: ADD !EXTRACT {{!URLCURRENT}} SAVEAS TYPE=EXTRACT FOLDER=* FILE=YellowpagescomauFirst.csv
Отредактировано zaskock (10-11-2015 23:50:16)
Отсутствует
Gergi
скрытый текстВыделить кодКод:
var text='Текст для теста'; const clipboardHelper=Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper); clipboardHelper.copyString(text); alert('Попробуй вставить куда нибудь текст из буфера обмена, нажми Ctrl+V');
так то работает,а как же сделать что бы из TXT файла по одной строке по очереди брал?
Отсутствует
Может есть вариант экстрактить в буфер обмена? Было бы идеально.
SET !CLIPBOARD {{!EXTRACT}}
как же сделать что бы из TXT файла по одной строке по очереди брал?
SET !DATASOURCE_LINE {{!LOOP}}
Отредактировано zaskock (11-11-2015 00:25:58)
Отсутствует
сделал так,но копирует в буфер всё содержимое тхт файла не по одной строке
var u; for (u=1;u<=11;u++){ iimPlay('CODE:URL GOTO=file:///C:\\Text.txt\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); n=iimGetLastExtract().split('\n'); const clipboardHelper=Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper); clipboardHelper.copyString(n); alert('n'); }
Отсутствует
Gergi
for (u=1; u<11; u++){ iimPlayCode('SET !DATASOURCE C:\\test\\Text.txt\nSET !DATASOURCE_LINE '+u+'\nSET !EXTRACT {{!COL1}}'); n=iimGetExtract(); const clipboardHelper=Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper); clipboardHelper.copyString(n); alert('Попробуй вставить куда нибудь текст из буфера обмена, нажми Ctrl+V'); }
Отредактировано PRESIDENT (22-12-2015 18:09:55)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Gergi
скрытый текстВыделить кодКод:
for (u=1; u<11; u++){ iimPlayCode('SET !DATASOURCE C:\\test\\Text.txt\nSET !DATASOURCE_LINE '+u+'\nSET !EXTRACT {{!COL1}}'); n=iimGetExtract(); const clipboardHelper=Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper); clipboardHelper.copyString(n); alert('Попробуй вставить куда нибудь текст из буфера обмена, нажми Ctrl+V'); }
Спасибочки Вроде вопрос исчерпан
Отсутствует
Костыль для звукового сигнала iMacros'ом.
Бывает так, что нужно, чтобы iMacros оповещал звуковым сигналом о некотором процессе, например, об окончании работы таймера перед ручным вводом капчи.
Насколько я понял, нет возможности для воспроизведения звуковых файлов с собственного компьютера напрямую https://forum.mozilla-russia.org/viewto … 82#p676082
Предлагаю такой костыль:
Макрос открывает в новой вкладке страницы сайта с библиотекой звуков и возможностью их проигрывать со страницы, жмёт кнопку воспроизвести звук (в моём примере - первый файл), закрывает вкладку и выполняет паузу, ожидая наших дальнейших действий. Естественно, код для нажатия кнопки воспроизведения звука на другом сайте будет другим.
TAB OPEN TAB T=2 URL GOTO=http://www.vidiko.ru/index.php?option=com_jukebox&view=category&id=44&Itemid=61 TAG POS=1 TYPE=A ATTR=CLASS:playtrack&&TITLE:Play/Resume&&TXT: WAIT SECONDS=4 TAB CLOSE pause
Отсутствует