Страницы: 1
запихал код в цикл, работает, но цикл зависит от условия "a<10", а хотелось бы, чтобы срабатывало условие "если строка пустая, то break", видимо я что-то недоделал :( подскажите пожалуйста
[spoiler][code]for (a=1;a<10;a++){
var n;
n = "\n";
var macro;
macro = "CODE:";
macro += "CMDLINE !DATASOURCE c:\\1.csv" + n;
macro += "SET !DATASOURCE_LINE " + a + n;
macro += "ADD !EXTRACT {{!COL1}}" + n;
iimPlay(macro)
var zapros = iimGetLastExtract()
if(zapros!=null){
macro += "WAIT SECONDS=1" + n;
macro += "TAB OPEN" + n;
macro += "WAIT SECONDS=1" + n;
macro += "TAB T=2" + n;
macro += "WAIT SECONDS=1" + n;
macro += "URL GOTO={{!COL1}}" + n;
macro += "WAIT SECONDS=1" + n;
macro += "TAG POS=2 TYPE=SPAN ATTR=TXT:Написать<SP>сообщение" + n;
macro += "WAIT SECONDS=1" + n;
macro += "TAG POS=1 TYPE=TEXTAREA FORM=NAME:NoFormName ATTR=ID:write-message CONTENT=прикольный<SP>кошак" + n;
macro += "WAIT SECONDS=1" + n;
macro += "ONDIALOG POS=1 BUTTON=OK CONTENT=" + n;
macro += "WAIT SECONDS=1" + n;
macro +=
...Так не пашет ...ReferenceError: weit is not defined, line: 3 (Error code: 991)
wAit буквой промазал товарищ президент
уберите эту команду и скрипт остановится в конце файла
либо в поиск, здесь, на форуме, куча примеров, как сделать это на js
вопрос такой: как поместить в цикл код, чтобы он перебирал строчки из файла до упора (1 столбец, код в таком виде работает и через луп тоже, но не всегда имеется возможность сверять количество для loop):
SET !ERRORIGNORE YES SET !DATASOURCE c:\1.csv SET !DATASOURCE_COLUMNS 1 SET !DATASOURCE_LINE {{!LOOP}} TAB OPEN TAB T=2 URL GOTO={{!COL1}} EVENT TYPE=CLICK SELECTOR="#i_contact>DIV:nth-of-type(4)>DIV>SPAN:nth-of-type(2)>SPAN" BUTTON=0 WAIT SECONDS=0.5 EVENT TYPE=CLICK SELECTOR="#write-message" BUTTON=0 WAIT SECONDS=0.5 EVENTS TYPE=KEYPRESS SELECTOR="#write-message" CHARS="текст для отправки" WAIT SECONDS=0.5 EVENT TYPE=CLICK SELECTOR="#extra_container>DIV>FORM>DIV>DIV:nth-of-type(4)>DIV>BUTTON" BUTTON=0 ONDIALOG POS=1 BUTTON=OK CONTENT= WAIT SECONDS=0.5 TAB CLOSE
agrx пишетесли не нашел ссылку с текстом "Следующая<SP>страница*", то break
скрытый текстВыделить кодКод:
for(;;){ parser(); if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=A ATTR=TXT:Следующая*страница*')<0) break; } function parser(){ //тут абсолютно рабочий код и претензий к нему у меня нет }
Спасибо! Готовый код для парсинга ссылок объявлений авито:
function parser() { for(i=1;; i++) { iimPlayCode('TAG POS='+i+' TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF'); var a=iimGetLastExtract(); if(a=='#EANF#' || a=='') break; iimPlayCode('SET !EXTRACT '+a+'\nSAVEAS TYPE=EXTRACT FOLDER=c:\\ FILE=1.csv'); } } for(;;){ parser(); if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=A ATTR=TXT:Следующая*страница*')<0) break; }
agrx пишетвсё равно не работает
а чего, собственно, вы пытаетесь добиться этой функцией? и что, соответственно, не работает?
перелистывание страницы на следующую. одноразовое перелистывание работает, но нужно в итоге примерно так:
function parser() { //тут абсолютно рабочий код и претензий к нему у меня нет } function list() { f=iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); //перелистывание страницы, сама по себе функция тоже работает } for(;;) { parser(); //после того, как отработает функция, вызов list(), далее повтор parser() list(); //если list() не нашел такую ссылку с текстом "Следующая<SP>страница*", то break }
agrx
уберите первую строку с iimPlayCode
то есть вот так?
function list() { f=iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); if(f<0) break; }
как правильно написать условие: если не находит атрибут, то остановить.
function list() { iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); f=iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Следующая<SP>страница*'); if(f<0) break; }
скрытый текстВыделить кодКод:
for(i=1; i<51; i++){ iimPlayCode('TAG POS='+i+' TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF'); var a=iimGetLastExtract(); if(a=='#EANF#' || a=='') break; iimPlayCode('SET !EXTRACT '+a+'\nSAVEAS TYPE=EXTRACT FOLDER=c:\\ FILE=1.csv');}
спасибо, помогло:o
Спасибо, разобрался, решил частично проблему через другой элемент вот так:
SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO TAG POS={{!LOOP}} TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF SAVEAS TYPE=EXTRACT FOLDER="c:\" FILE=1.csv 'PROMPT {{!EXTRACT}}
Как сказать скрипту:
1. выполняться 50 раз
2. если элемент не найден, то остановить выполнение.
Пытался искать в гугле, но именно такой конструкции повторения (нужное количество или до стопа) не нашел.
Наваял нечто такое, но что-то не работает:
[spoiler][code]SET !EXTRACT_TEST_POPUP NO
TAG POS={{!LOOP}} TYPE=A ATTR=HREF:/favorites/add/*&&CLASS:favorites* EXTRACT=HREF
SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; if(s = \"#EANF#\"){break;} else continue;")
SET !EXTRACT NULL
SET !
Вопрос такой: как развернуть XPATH для {{!LOOP}} ?
Пример строки:
TAG XPATH="/html/body/div[5]/div[1]/div[4]/div[1]/div[2]/div[2]/div[13]/div[3]/h3/a"
Подскажите кусок кода у кого может есть: ткнуть в группе фейсбука в "write something..." (или в "write post" ) и написать текст, любой, хоть "111". Стандартными методами не могу выловить поле ввода, пол дня ковырял, интернет перерыл как только смог :(
Вопрос вынесен в отдельную тему из топика: iMacros for Firefox - общие вопросы, обсуждение возможностей
Правила форума:
2. Не рекомендуется:
2.1 Задавать вопросы, ответы на которые есть в «FAQ» или легко находятся поиском. Тема с данным вопросом будет перенесена модератором в форум «Архив» без каких-либо объяснений. Перенос вашей темы в данный форум служит признаком того, что вы плохо искали (или не искали вовсе) ответ на свой вопрос.InfSub
Подскажите конструкцию: цикл - если определенный текст найден на странице, то выполнить действие
…Вопрос вынесен в отдельную тему из топика: iMacros for Firefox - общие вопросы, обсуждение возможностей
Правила форума:
2. Не рекомендуется:
2.1 Задавать вопросы, ответы на которые есть в «FAQ» или легко находятся поиском. Тема с данным вопросом будет перенесена модератором в форум «Архив» без каких-либо объяснений. Перенос вашей темы в данный форум служит признаком того, что вы плохо искали (или не искали вовсе) ответ на свой вопрос.[sub]Правила форума iMacros:
…
2. Не рекомендуется:
1.3.2 Размещать код в открытом виде. Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [spoiler][code]ваш код[/code][/spoiler] или выложите на сайт «[url=http://pastebin.mozilla-rus
Страницы: 1