Страницы: 1
\s пробельный символ
знаю, но обычно оно и с обычным пробелом работает
Ведь можно писать регулярки в SEARCH напрямую.
блин, это что выходит я зря все время обрезанием занимался :lol:
а с пробелами как его подружить ?? вместо пробела нужно точку ставить чтобы ошибки не было
Squatter
для глобал можно через задницу сделать :)
SET !VAR1 EVAL("\"{{!extract}}\".match(/(начало строки[\s\S]+)лишний текст/g, \"$1\").replace(/лишний текст/g, \"\");")
Соответственно если так хочется задать границы поиска без их включения, то результат получаем так
ну так я это и хочу получить, но чисто в ймакросе
P/s : нашел решение
Set !Var1 Eval("var exp = '{{!extract}}'.match(/(начало строки[\s\S]+)лишний текст/); exp[1];")
[\s\S]* - "спасет вождя мирового пролетариата" (с) и ни чего подгонять не придется
не всегда подходит, например "какойто текст текст который нужен " так [\s\S]*(текст[\s\S]+) в груп 1 будет "текст который нужен" , а так (текст[\s\S]+) "текст текст который нужен " , т.е. с [\s\S]* будет брать с последнего совпадения, а без него с первого
https://regexr.com/
подскажите как вывести захваченную группу, раньше вроде так работало
SET !VAR1 EVAL("var x=\"{{!EXTRACT}}\"; x=x.match(/лишний текст(начало нужного текста[\s\S]+конец нужного текста)лишний текст/g,\"$1\");")
stanny
Вы пришли сюда спорить или получить ответ на вопрос?
Я не спорю, я говорю про факты которые легко отследить. Память отжирается при использовании imacrosa, при стандартном использовании браузера с потреблением памяти все в порядке, даже если повторить в ручную что делает макрос. Получается тогда под imacros надо заводить отдельный браузер с нестандартными настройками.
Про код я уже писал, банальное зайти на страницу нажать кнопку, 2 строчки кода ( для теста ) ошибок там никаких быть не может.
а браузер можно убить и одной строчкой, все зависит от вашего кода
дело не в коде, попробуйте запустить элементарное действие зайти на страницу - нажать кнопку, в цикле на 50-100 раз и посмотрите сколько уходит памяти в самом начале и сколько спустя например 20 циклов, и эта цифра постоянно будет расти
InfSub
я спрашивал именно по imacrosy
about:config
именно по imacrosy там настроек для памяти нет, только самого браузера
прожорливость imacrosa можно как-то регулировать ??? банальное зайти на страницу и нажать кнопку в цикле после 50 уже больше гига озу высасывает и постоянно растет пока не упрется в потолок или не закончится работа макроса, при 200 мб при старте. Часто после 50 начинает тупить, может даже повиснуть из за нехватки озу, я то думал вначале что это сервер шалит.
Подскажите что вы делаете в таких случаях.
просто меняю местами, чтобы скрипт начинался с таб 1
как мне запустить 10 раз весь скрипт
for (a=1;a<=10;a++){ iimPlay("D:\\iMacros\\random-sites-ucoz-spam\\ test1.iim") for (;;){ if (iimPlayCode('TAG POS=1 TYPE=SPAN ATTR=TXT:Здесь условие и оно срабатывает')>0){ iimPlay("D:\\iMacros\\random-sites-ucoz-spam\\ test3.iim") } else { iimPlay("D:\\iMacros\\random-sites-ucoz-spam\\ test2.iim",60) break } } }
Макрос
как-то так
[spoiler][code]
for (i = 8; i < 9; i++)
{
var macroobsh;
macroobsh = "CODE:";
macroobsh += "SET !DATASOURCE reformaobemku.csv" + "\n";
macroobsh += "SET !DATASOURCE_LINE "+i+ "\n";// из какой по счету строки брать данные
macroobsh += "TAG POS=1 TYPE=SPAN ATTR=TXT:Объемы<SP>по<SP>коммунальным<SP>услугам" + "\n";
macroobsh += "TAG POS=1 TYPE=DIV ATTR=TXT:Водоотведение" + "\n";
macroobsh += "TAG POS=r1 TYPE=A ATTR=TXT:Открыть" + "\n";
macroobsh += "WAIT SECONDS=1" + "\n";
macroobsh += "TAG POS=14 TYPE=DIV ATTR=CLASS:\"x-trigger-index-0 x-form-trigger x-form-arrow-trigger x-form-trigger-first\"" + "\n";
macroobsh += "TAG POS=1 TYPE=LI ATTR=TXT:\"{{!COL6}}\"" + "\n";
macroobsh += "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:totalVolume CONTENT=\"{{!COL7}}\"" + "\n";
macroobsh += "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:accruedConsumer CONTENT=\"{{!COL8}}\"" + "\n";
macroobsh += "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:paidByConsumersAmount CON
видимо в хрефе imacros только ссылки понимает
а нет )), первый вариант тоже рабочий, я просто точку с запятой в конце не дописал javascript:void(0); :D
Aikyaira
удалено, избыточное цитирование
так у меня сработало, видимо в хрефе imacros только ссылки понимает
TAG POS=1 TYPE=DIV ATTR=TXT:Холодное<SP>водоснабжение TAG POS=r1 TYPE=A ATTR=TXT:Открыть
InfSub
Aikyaira
TAG POS=1 TYPE=DIV ATTR=Class:x-grid-cell-inner*&&TXT:Холодное<sp>водоснабжение TAG POS=R1 TYPE=A ATTR=HREF:javascript:void(0)
InfSub
что мешает сделать prompt на js
а какая разница ? нужный функционал выполняет, и так сойдет :D
нагородил тут короче, цикл в цикле, с кучей проверок на null, проставил iimset, чтобы кавычки везде не переделывать :)
[spoiler=колхозстайл][code]
for (a=1;a<=1;a++){
iimPlayCode("TAG POS="+a+" TYPE=IMG ATTR=SRC:https://www.........*\n TAG POS=1 TYPE=A ATTR=TXT:Атрибут\n");
for (i=1;1<2;i++){
iimSet("VAR0",i)
var macro;
macro = "CODE:";
macro += "TAG POS={{!var0}} TYPE=INPUT:TEXT FORM=ID:adminForm ATTR=NAME:attr_ean[] EXTRACT=TXT" + "\n";
iimPlay(macro)
var zapros = iimGetLastExtract(1)
if(zapros!=null & zapros!='#EANF#'){
iimSet("VAR1",zapros)
iimSet("VAR0",i)
iimPlayCode("SET !ERRORIGNORE YES\n TAB T=2\n FRAME NAME=frSheet\n TAG POS=1 TYPE=TD ATTR=TXT:{{!var1}}\n TAG POS=R1 TYPE=TD ATTR=TXT:* EXTRACT=TXT\n TAB T=1\n");
var zapros1 = iimGetLastExtract(1)
if(zapros1!=null & zapros1!='#EANF#'){
iimSet("VAR2", zapros1)
iimSet("VAR0",i)
iimPlayCode("TAG POS={{!var0}} TYPE=INPUT:TEXT FORM=ID:adminForm ATTR=NAME:attrib_price[] CONTENT={{!var2}}\n SET !EXTRACT NULL\n");
}
el
не будет ошибочной
ну а при чем тут извлеченный текст и присвоенный текст, в сет конечно текст надо в кавычках, а экстракту пофиг на кавычки он и без кавычек выводит все правильно с пробелами
опять голословные рассуждения, что именно у вас работает не корректно?
ваш пост https://forum.mozilla-russia.org/viewto … 72#p695672
у меня уже все работает как надо, только пришлось прописать чтобы каждый экстракт из 4 проверяло чтобы не был null, функционалу от этого только лучше стало, чтобы не было не заполненных полей :)
может и не быть примера записи iMacros-кода в js
в вики по js функционалу кроме iim... ничего нету. Родные переменные из imacros и js переменные записываются по разному, так что синтаксис тут разный. Вот пример из вики, PROMPT Extracted<SP>data:{{!EXTRACT}}, по нему логично предположить что в js это будет выглядеть как iimPlayCode('PROMPT Extracted<SP>data:'+a+'\n'); но это не так из за того что !EXTRACT по видимому сам подставляет <sp>, а после переноса в JS переменную и обратно он уже идет как простой текст с пробелами.
З.Ы. кстати может есть какой-то костыль чтобы извлекать var'ы, без того чтобы их загонять в экстракт и потом вытаскивать через iimGetExtract ( что при нескольких переменных работает не корректно )?? может какой-то iimGetVar0......imGetVar9 придумали ??
текст содержащий пробелы должен быть обрамлен в двойные кавычки
я это знаю, но в таком виде вообще пишет ошибку, из за того что код в iimplay кавычках, любые другие кавычки кроме "+b+" ломают весь код и выдает ошибку
в вики и фак ничего нету про переменные из imacros в js и обратно, кроме iimset, но хочется переменную напрямую передавать, без пробелов все передается, с пробелами нет
так не работает iimPlayCode("PROMPT "Извлеченный текст"+b+"\n"); и так тоже iimPlayCode("PROMPT "Извлеченный текст""+b+"\n");
как текст из переменной imacros передать в JS и потом обратно в imacros ??
var macro; macro = "CODE:"; macro += "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:admin ATTR=NAME:name EXTRACT=TXT" + "\n"; iimPlay(macro) var b = iimGetExtract(1) iimSet("VAR1",b) iimPlayCode("PROMPT Извлеченный<sp>текст<sp>{{!VAR1}}\n PROMPT Извлеченный<sp>текст<sp>"+b+"\n")
Страницы: 1