Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.
  • Форумы
  •  » iMacros
  •  » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

№103-05-2017 12:26:23

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 58.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)



iMacros for FireFox - общие вопросы, обсуждение возможностей (Часть 2)



Правила оформления сообщений в данном топике:

1a50e37cd460db106ba5ca4992038a53.jpg


  • Адрес сайта и страницы, на которой возникла проблема, размещается в тегах [ spoiler][ noindex]http://адрес_сайта/название_страницы[ /noindex][ /spoiler]

  • Для размещения кода, используйте тег "Code" внутри тега "Spoiler" - [ spoiler][ code]ваш код[ /code][ /spoiler]
    или выложите на сайт «Pastebin».
  • При размещении объемных материалов, используйте тег "Spoiler" - [ spoiler]ваш текст[ /spoiler]
    или выложите на сайт «Pastebin».
  • Размещать изображения в открытом виде. Для размещения скриншотов и других изображений, используйте тег "Spoiler" - [ spoiler][ img]http://ссылка_на_изображение[ /img][ /spoiler]
    .


«Можно ответить на любой вопрос, если вопрос задан правильно.»
Платон

«Не каждый вопрос заслуживает ответа.»
Сайрус


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№27709-10-2017 22:55:29

stanny
Участник
 
Группа: Members
Зарегистрирован: 09-10-2017
Сообщений: 23
UA: Chrome 49.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

InfSub пишет

текст содержащий пробелы должен быть обрамлен в двойные кавычки

я это знаю, но в таком виде вообще пишет ошибку, из за того что код в iimplay кавычках, любые другие кавычки кроме "+b+" ломают весь код и выдает ошибку

в вики и фак ничего нету про переменные из imacros в js и обратно, кроме iimset, но хочется переменную напрямую передавать, без пробелов все передается, с пробелами нет

скрытый текст

Выделить код

Код:

так не работает
iimPlayCode("PROMPT "Извлеченный текст"+b+"\n");

и так тоже
iimPlayCode("PROMPT "Извлеченный текст""+b+"\n");


З.Ы.
получилось так, но двойные кавычки почти везде поменял на одинарные
скрытый текст

Выделить код

Код:

iimPlayCode('PROMPT "Извлеченный текст '+a+'"\n');

Отредактировано stanny (09-10-2017 23:34:19)

Отсутствует

 

№27810-10-2017 04:28:18

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 61.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

stanny пишет

я это знаю, но в таком виде вообще пишет ошибку, из за того что код в iimplay кавычках, любые другие кавычки кроме "+b+" ломают весь код и выдает ошибку

читайте - что такое экранирование спец. символов
читайте о переменных в js и о том, как в них записываются значения и в какие кавычки их можно обрамлять, как минимум 3 варианта кавычек
на форуме все это есть, разве что не все вынесено текстом в FAQ, так как есть видео уроки, да и ответы находятся элементарно поиском
в офф. вики - полно полезной информации для новичка, в том числе и о том, как записывать переменные iMacros (правила синтаксиса языка), да там может и не быть примера записи iMacros-кода в js, хотя очень сильно в этом сомневаюсь, но даже если нет, то учите js, если вы элементарно не понимаете, как записать код, содержащий кавычки, в js-переменную.


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№27910-10-2017 15:41:32

stanny
Участник
 
Группа: Members
Зарегистрирован: 09-10-2017
Сообщений: 23
UA: Chrome 49.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

InfSub пишет

может и не быть примера записи 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 придумали ??

Отсутствует

 

№28010-10-2017 16:16:02

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 61.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

stanny пишет

но это не так из за того что !EXTRACT по видимому сам подставляет <sp>

ок, тогда по вашему - логично предположить что запись вида:

скрытый текст

Выделить код

Код:

SET MYVAR какой-то текст


не будет ошибочной, тем не менее - это не так и будет ошибка синтаксиса из-за того что присутствует пробел
давайте не будем обвинять всех и вся в том, что вы не знаете синтаксиса языка iMacros
мне, извините, лениво сейчас перерывать вики, но поверьте, я имакросом занимаюсь около 3 лет и 90% знаний о нем почерпнуто из вики, в том числе и синтаксис и методы взаимодействия с js

stanny пишет

может есть какой-то костыль чтобы извлекать var'ы, без того чтобы их загонять в экстракт и потом вытаскивать через iimGetExtract

нету, у всех все работает нормально при понимании принципов работы iMacros вообще и в связке с js в частности

stanny пишет

при нескольких переменных работает не корректно

опять голословные рассуждения, что именно у вас работает не корректно? примеры где? или вам скучно и поговорить не с кем?

Добавлено 10-10-2017 16:22:13
P.S.

stanny пишет

кстати может есть какой-то костыль

впрочем - есть, можно с помощью js без iMacros'a вытащить данные - вот только это не всегда - удобно делать с помощью js

Добавлено 10-10-2017 16:25:47
P.S.S.
iMacros для FF написан на JS, так что, все что он может сделать, можно сделать и с помощью JS, вот только в 90% случаев проще написать 1-2 строки кода на iMacros, чем писать 50 строк кода на js (бывают исключения, но это уже частности)

Добавлено 10-10-2017 16:30:24
P.S.S.S.

Получение любой информации со страницы при помощи Javascript
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.

Отредактировано InfSub (10-10-2017 16:33:35)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№28110-10-2017 16:41:34

stanny
Участник
 
Группа: Members
Зарегистрирован: 09-10-2017
Сообщений: 23
UA: Chrome 49.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

InfSub пишет

не будет ошибочной

ну а при чем тут извлеченный текст и присвоенный текст, в сет конечно текст надо в кавычках, а экстракту пофиг на кавычки он и без кавычек выводит все правильно с пробелами

InfSub пишет

опять голословные рассуждения, что именно у вас работает не корректно?

ваш пост https://forum.mozilla-russia.org/viewto … 72#p695672

у меня уже все работает как надо, только пришлось прописать чтобы каждый экстракт из 4 проверяло чтобы не был null, функционалу от этого только лучше стало, чтобы не было не заполненных полей :)

Отсутствует

 

№28210-10-2017 16:47:56

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 61.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

stanny
на всякий случай, если вдруг не заметили, в предыдущий пост еще кое что добавил в конце

stanny пишет

ну а при чем тут извлеченный текст и присвоенный текст

пример из любого другого языка программирования, например из того же js
данные пришедшие из формы или из другой другой переменной уже, образно говоря, ограничены кавычками, данные передаваемые в коде, т.е. записью вида:

переменная = 'значение'


ограничиваются кавычками, для правильного распознавания интерпретатором

Добавлено 10-10-2017 16:51:02

stanny пишет

ваш пост

да, и там описано как этого избежать:

InfSub пишет

- стараться не использовать несколько EXTRACT'ов подряд, если вы не уверены, что первый EXTRACT - не будет пустым

Добавлено 10-10-2017 16:53:31
stanny
т.е. суть в том, что достаточно разбить iMacros код на части и извлекать данные так, чтобы один EXTRACT=TXT был равен одному iimGetExtract() 
несколько косноязычно выразился, но думаю понять можно идею

Отредактировано InfSub (10-10-2017 16:53:31)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№28310-10-2017 16:58:57

stanny
Участник
 
Группа: Members
Зарегистрирован: 09-10-2017
Сообщений: 23
UA: Chrome 49.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

нагородил тут короче, цикл в цикле, с кучей проверок на null, проставил iimset, чтобы кавычки везде не переделывать :)

колхозстайл

Выделить код

Код:

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");
}
else {    
iimPlayCode('Prompt "Нет цены для атрибута '+zapros+'"\n SET !EXTRACT NULL\n');    
}

iimDisplay('Прошли атрибутов: '+ (i)) 
}

else {

iimPlayCode("SET !ERRORIGNORE YES\n TAG POS=1 TYPE=A ATTR=TXT:Информация<SP>о<SP>товаре\n TAG POS=1 TYPE=INPUT:TEXT FORM=ID:adminForm ATTR=ID:product_ean EXTRACT=TXT\n");
var zapros2 = iimGetLastExtract(1)


if(zapros2!=null){
iimSet("VAR3", zapros2)    
iimPlayCode("SET !ERRORIGNORE YES\n TAB T=2\n FRAME NAME=frSheet\n TAG POS=1 TYPE=TD ATTR=TXT:{{!var3}}\n TAG POS=R1 TYPE=TD ATTR=TXT:* EXTRACT=TXT\n TAB T=1\n");

var zapros3 = iimGetLastExtract(1)
if(zapros3!='#EANF#'){
iimSet("VAR4", zapros3)    
iimPlayCode("TAG POS=1 TYPE=INPUT:TEXT FORM=ID:adminForm ATTR=ID:product_price CONTENT={{!var4}}\n");
}
else
{
iimPlayCode('PROMPT "Нет цены для атрибута '+zapros2+'"\n')    
}
    
}
else
{
iimPlayCode("PROMPT Нет<sp>атрибута\n");    
}

iimDisplay("Пройдено "+i+" атрибутов"); 
break
}

}

iimPlayCode("PROMPT Продолжить<sp>если<sp>все<sp>правильно\n PAUSE\n TAG POS=1 TYPE=BUTTON ATTR=TXT:Сохранить<SP>и<SP>закрыть\n");
}


все зло в кавычках :)

Добавлено 10-10-2017 17:01:07

InfSub пишет

не будет пустым

вот именно что экстракты бывают пустые и я прописал чтобы выскочил промт, что нужно заполнить вручную

Отредактировано stanny (10-10-2017 17:01:07)

Отсутствует

 

№28410-10-2017 17:09:56

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 61.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

stanny
использовать iimSet() или конкатенацию строк - дело ваше (на вкус и цвет)
при конкатенации, да и вообще в js я бы рекомендовал использовать одинарные кавычки, как минимум проще разобраться где у вас код js, а где iMacros
впрочем, как уже писал ранее - экранирование спец. символов ни кто не отменял:

скрытый текст

Выделить код

Код:

var zapros = iimGetLastExtract();
iimPlayCode("TAG POS=1 TYPE=TD ATTR=TXT:\""+zapros+"\"\n TAG POS=R1 TYPE=TD ATTR=TXT:* EXTRACT=TXT")


Добавлено 10-10-2017 17:11:56

stanny пишет

я прописал чтобы выскочил промт, что нужно заполнить вручную

что мешает сделать prompt на js?

скрытый текст

Выделить код

Код:

var text = prompt('Нет атрибута');

Отредактировано InfSub (10-10-2017 17:11:56)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№28510-10-2017 17:28:39

stanny
Участник
 
Группа: Members
Зарегистрирован: 09-10-2017
Сообщений: 23
UA: Chrome 49.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

InfSub пишет

что мешает сделать prompt на js

а какая разница ? нужный функционал выполняет, и так сойдет :D

Отсутствует

 

№28610-10-2017 17:40:06

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 61.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

stanny
лишний код, как минимум, впрочем - дело ваше


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№28712-10-2017 18:16:42

Aikyaira
Участник
 
Группа: Members
Зарегистрирован: 12-10-2017
Сообщений: 19
UA: Chrome 61.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Добрый день, уважаемые форумчане!
Есть таблица на странице такого вида:

скрытый текст

Выделить код

Код:

<table role="presentation" id="gridview-1256-table" class="x-gridview-1256-table x-grid-table x-grid-with-col-lines x-grid-with-row-lines" style="width: 880px;" tabindex="-1" cellspacing="0" cellpadding="0" border="0">
    <colgroup><col class="x-grid-cell-gridcolumn-1248" style="width:126px"></colgroup>
    <colgroup><col class="x-grid-cell-gridcolumn-1249" style="width:126px"></colgroup>
    <colgroup><col class="x-grid-cell-datecolumn-1250" style="width:126px"></colgroup>
    <colgroup><col class="x-grid-cell-gridcolumn-1251" style="width:125px"></colgroup>
    <colgroup><col class="x-grid-cell-gridcolumn-1252" style="width:126px"></colgroup>
    <colgroup><col class="x-grid-cell-gridcolumn-1253" style="width:126px"></colgroup>
    <colgroup><col class="x-grid-cell-textActionColumn-1254" style="width:125px"></colgroup>
    <tbody id="gridview-1256-body">
        <tr role="row" id="gridview-1256-record-14400958" data-boundview="gridview-1256" data-recordid="14400958" data-recordindex="0" class="x-grid-row x-grid-data-row x-grid-row-before-selected x-grid-row-before-focused" tabindex="-1">
            <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1248 x-grid-cell-first " id="ext-gen1896">
                <div class="x-grid-cell-inner " style="text-align:center;">Водоотведение</div>
            </td>
            <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1249 " id="ext-gen1897">
                <div class="x-grid-cell-inner " style="text-align:center;">Предоставляется</div>
            </td>
            <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-datecolumn-1250 " id="ext-gen1898">
                <div class="x-grid-cell-inner " style="text-align:center;">&nbsp;</div>
            </td>
            <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1251 " id="ext-gen1899">
                <div class="x-grid-cell-inner " style="text-align:center;">куб.м</div>
            </td>
            <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1252 " id="ext-gen1900">
                <div class="x-grid-cell-inner " style="text-align:center;">8545.08</div>
            </td>
            <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1253 " id="ext-gen1901">
                <div class="x-grid-cell-inner " style="text-align:center;">215763.21</div>
            </td>
            <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-textActionColumn-1254 x-grid-cell-last  x-text-action-col-cell" id="ext-gen1902">
                <div class="x-grid-cell-inner x-grid-cell-inner-text-action-col" style="text-align:center;"> 
                    <a href="javascript:void(0);" style="margin:0 4px;color:-webkit-link;" title="Редактировать данные по услуге" class="x-action-text x-action-col-0  ">Открыть</a>
                </div>
            </td>
        </tr>
        <tr role="row" id="gridview-1256-record-14400955" data-boundview="gridview-1256" data-recordid="14400955" data-recordindex="1" class="x-grid-row x-grid-row-alt x-grid-data-row x-grid-row-selected x-grid-row-focused" tabindex="-1">
            <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1248 x-grid-cell-first " id="ext-gen1903">
                <div class="x-grid-cell-inner " style="text-align:center;">Горячее водоснабжение</div>
            </td>
            <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1249 " id="ext-gen1904">
                <div class="x-grid-cell-inner " style="text-align:center;">Предоставляется</div>
            </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-datecolumn-1250 " id="ext-gen1905">
            <div class="x-grid-cell-inner " style="text-align:center;">&nbsp;</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1251 " id="ext-gen1906">
            <div class="x-grid-cell-inner " style="text-align:center;">Гкал/куб.м</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1252 " id="ext-gen1907">
            <div class="x-grid-cell-inner " style="text-align:center;">&nbsp;</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1253 " id="ext-gen1908">
            <div class="x-grid-cell-inner " style="text-align:center;">&nbsp;</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-textActionColumn-1254 x-grid-cell-last  x-text-action-col-cell" id="ext-gen1909">
            <div class="x-grid-cell-inner x-grid-cell-inner-text-action-col" style="text-align:center;"> 
                <a href="javascript:void(0);" style="margin:0 4px;color:-webkit-link;" title="Редактировать данные по услуге" class="x-action-text x-action-col-0  ">Открыть</a>
            </div>
        </td>
    </tr>
    <tr role="row" id="gridview-1256-record-14400962" data-boundview="gridview-1256" data-recordid="14400962" data-recordindex="2" class="x-grid-row x-grid-data-row" tabindex="-1">
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1248 x-grid-cell-first " id="ext-gen1910">
            <div class="x-grid-cell-inner " style="text-align:center;">Отопление</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1249 " id="ext-gen1911">
            <div class="x-grid-cell-inner " style="text-align:center;">Предоставляется</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-datecolumn-1250 " id="ext-gen1912">
            <div class="x-grid-cell-inner " style="text-align:center;">&nbsp;</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1251 " id="ext-gen1913">
            <div class="x-grid-cell-inner " style="text-align:center;">Гкал</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1252 " id="ext-gen1914">
            <div class="x-grid-cell-inner " style="text-align:center;">&nbsp;</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1253 " id="ext-gen1915">
            <div class="x-grid-cell-inner " style="text-align:center;">&nbsp;</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-textActionColumn-1254 x-grid-cell-last  x-text-action-col-cell" id="ext-gen1916">
            <div class="x-grid-cell-inner x-grid-cell-inner-text-action-col" style="text-align:center;"> 
                <a href="javascript:void(0);" style="margin:0 4px;color:-webkit-link;" title="Редактировать данные по услуге" class="x-action-text x-action-col-0  ">Открыть</a>
            </div>
        </td>
    </tr>
    <tr role="row" id="gridview-1256-record-14400960" data-boundview="gridview-1256" data-recordid="14400960" data-recordindex="3" class="x-grid-row x-grid-row-alt x-grid-data-row" tabindex="-1">
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1248 x-grid-cell-first " id="ext-gen1917">
            <div class="x-grid-cell-inner " style="text-align:center;">Холодное водоснабжение</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1249 " id="ext-gen1918">
            <div class="x-grid-cell-inner " style="text-align:center;">Предоставляется</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-datecolumn-1250 " id="ext-gen1919">
            <div class="x-grid-cell-inner " style="text-align:center;">&nbsp;</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1251 " id="ext-gen1920">
            <div class="x-grid-cell-inner " style="text-align:center;">куб.м</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1252 " id="ext-gen1921">
            <div class="x-grid-cell-inner " style="text-align:center;">&nbsp;</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-gridcolumn-1253 " id="ext-gen1922">
            <div class="x-grid-cell-inner " style="text-align:center;">&nbsp;</div>
        </td>
        <td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-textActionColumn-1254 x-grid-cell-last  x-text-action-col-cell" id="ext-gen1923">
            <div class="x-grid-cell-inner x-grid-cell-inner-text-action-col" style="text-align:center;"> 
                <a href="javascript:void(0);" style="margin:0 4px;color:-webkit-link;" title="Редактировать данные по услуге" class="x-action-text x-action-col-0  ">Открыть</a>
            </div>
        </td>
    </tr>
</tbody>
</table>


Задача такая: c применением JS и IMacros найти перебором <tr>, в котором есть элемент <div> с текстом "Холодное водоснабжение" и получить его индекс, затем нужно кликнуть по ссылке, находящейся в том же <tr>.
Задача с индексом решена таким путем:
скрытый текст

Выделить код

Код:

function rowIndex (trs, content) {
  for (var i = 0, l = trs.length; i < l; i++) {
    if (trs[i].textContent.match(content)) return i;
  }
}
 
var trs = window.document.querySelectorAll('tr');
var itr = rowIndex(trs, "Холодное водоснабжение");


Вопрос: как теперь кликнуть по ссылке, находящейся в том же <tr>?

Отредактировано Aikyaira (12-10-2017 18:22:23)

Отсутствует

 

№28812-10-2017 19:35:04

stanny
Участник
 
Группа: Members
Зарегистрирован: 09-10-2017
Сообщений: 23
UA: Chrome 49.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Aikyaira

скрытый текст

Выделить код

Код:

TAG POS=1 TYPE=DIV ATTR=Class:x-grid-cell-inner*&&TXT:Холодное<sp>водоснабжение
TAG POS=R1 TYPE=A ATTR=HREF:javascript:void(0)


код публикуется в тегах code под спойлером

InfSub

Отредактировано stanny (12-10-2017 19:35:36)

Отсутствует

 

№28912-10-2017 19:54:36

Aikyaira
Участник
 
Группа: Members
Зарегистрирован: 12-10-2017
Сообщений: 19
UA: Chrome 61.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

stanny
удалено, избыточное цитирование

Не находит такой элемент.:(
К тому же, на сайте динамические классы и id, поэтому к ним привязываться нельзя, если только не получать их с помощью js. А как это сделать-я не знаю.


InfSub

Отредактировано Aikyaira (12-10-2017 20:03:05)

Отсутствует

 

№29012-10-2017 20:16:08

stanny
Участник
 
Группа: Members
Зарегистрирован: 09-10-2017
Сообщений: 23
UA: Chrome 49.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Aikyaira
удалено, избыточное цитирование

так у меня сработало, видимо в хрефе imacros только ссылки понимает

скрытый текст

Выделить код

Код:

TAG POS=1 TYPE=DIV ATTR=TXT:Холодное<SP>водоснабжение
TAG POS=r1 TYPE=A ATTR=TXT:Открыть


код публикуется в тегах code под спойлером
замечание

InfSub

Отредактировано stanny (12-10-2017 20:18:37)

Отсутствует

 

№29112-10-2017 20:18:23

Aikyaira
Участник
 
Группа: Members
Зарегистрирован: 12-10-2017
Сообщений: 19
UA: Chrome 61.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

stanny
удалено, избыточное цитирование
Огромнейшее спасибо, помогло!


InfSub

Отсутствует

 

№29212-10-2017 20:31:59

stanny
Участник
 
Группа: Members
Зарегистрирован: 09-10-2017
Сообщений: 23
UA: Chrome 49.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

stanny пишет

видимо в хрефе imacros только ссылки понимает

а нет )), первый вариант тоже рабочий, я просто точку с запятой в конце не дописал javascript:void(0);  :D

Отредактировано stanny (12-10-2017 20:33:21)

Отсутствует

 

№29313-10-2017 16:35:15

Aikyaira
Участник
 
Группа: Members
Зарегистрирован: 12-10-2017
Сообщений: 19
UA: Chrome 61.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Можно ли присвоить значение колонки файла, который !Datasource, переменной js?
что-то типа того:

скрытый текст

Выделить код

Код:

var otoplen;
otoplen = "{{!COL27}}";


И как правильно это сделать?

Отсутствует

 

№29413-10-2017 17:04:21

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 61.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Aikyaira

скрытый текст

Выделить код

Код:

iimPlayCode('SET !DATASOURCE ..... \nSET !EXTRACT {{!COL27}}');
var otoplen = iimGetLastExtract();

Отредактировано InfSub (13-10-2017 17:06:23)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№29514-10-2017 12:19:50

Gergi
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 495
UA: Chrome 61.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Всем привет :rock:
В текстовом файле есть вот такая запись "forum65-1234" как мне вытащить только то что до тире - получается это forum65
Раньше как то этот делал,сейчас не могу вспомнить.

Делаю вот так не получается

скрытый текст

Выделить код

Код:

iimPlayCode('SET !DATASOURCE C:\\1.txt\nSET !DATASOURCE_LINE 1\nSET !EXTRACT {{!COL1}}'); 
f1r=iimGetExtract().replace('-',',');
alert(f1r);

Отредактировано Gergi (14-10-2017 12:23:02)

Отсутствует

 

№29614-10-2017 12:57:55

nikolay1987
Участник
 
Группа: Members
Зарегистрирован: 25-07-2016
Сообщений: 64
UA: Chrome 61.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Gergi

скрытый текст

Выделить код

Код:

f1r=iimGetExtract().split('-')[0]

Отсутствует

 

№29714-10-2017 15:11:11

Gergi
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 495
UA: Chrome 61.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

nikolay1987
Благодарю:rock:

Отсутствует

 

№29816-10-2017 13:35:37

Aikyaira
Участник
 
Группа: Members
Зарегистрирован: 12-10-2017
Сообщений: 19
UA: Chrome 61.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Добрый день!
Который день мучаюсь с макросом:

скрытый текст

Выделить код

Код:

for (i = 8; i < 9; i++)
{
macroobsh +=  "CODE:" + "\n"; 
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 CONTENT=\"{{!COL9}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:consumerArrears CONTENT=\"{{!COL10}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:cashToProviderPayment CONTENT=\"{{!COL11}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:paidToSupplierAmount CONTENT=\"{{!COL12}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:arrearToSupplierAmount CONTENT=\"{{!COL13}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:totalPenalties CONTENT=\"{{!COL14}}\"" + "\n"; 
macroobsh +=  "TAG POS=2 TYPE=A ATTR=TXT:Сохранить" + "\n"; 
macroobsh +=  "WAIT SECONDS=1" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=A ATTR=TXT:OK" + "\n"; 
macroobsh +=  "SET !EXTRACT {{!COL17}}" + "\n";
var gvs = iimGetExtract();
if (gvs != ""){
macroobsh +=  "SET !EXTRACT NULL" + "\n";
macroobsh +=  "TAG POS=1 TYPE=DIV ATTR=TXT:Горячее<SP>водоснабжение" + "\n"; 
macroobsh +=  "TAG POS=r1 TYPE=A ATTR=TXT:Открыть" + "\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:\"{{!COL16}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:totalVolume CONTENT=\"{{!COL17}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:accruedConsumer CONTENT=\"{{!COL18}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:paidByConsumersAmount CONTENT=\"{{!COL19}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:consumerArrears CONTENT=\"{{!COL20}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:cashToProviderPayment CONTENT=\"{{!COL21}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:paidToSupplierAmount CONTENT=\"{{!COL22}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:arrearToSupplierAmount CONTENT=\"{{!COL23}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:totalPenalties CONTENT=\"{{!COL24}}\"" + "\n"; 
macroobsh +=  "TAG POS=2 TYPE=A ATTR=TXT:Сохранить" + "\n"; 
macroobsh +=  "WAIT SECONDS=1" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=A ATTR=TXT:OK" + "\n"; 
}
macroobsh +=  "SET !EXTRACT NULL" + "\n";
macroobsh +=  "SET !EXTRACT {{!COL27}}" + "\n";
var otoplen = iimGetExtract();
if (otoplen != ""){
macroobsh +=  "SET !EXTRACT NULL" + "\n";
macroobsh +=  "TAG POS=1 TYPE=DIV ATTR=TXT:Отопление" + "\n"; 
macroobsh +=  "TAG POS=r1 TYPE=A ATTR=TXT:Открыть" + "\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:\"{{!COL26}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:totalVolume CONTENT=\"{{!COL27}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:accruedConsumer CONTENT=\"{{!COL28}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:paidByConsumersAmount CONTENT=\"{{!COL29}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:consumerArrears CONTENT=\"{{!COL30}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:cashToProviderPayment CONTENT=\"{{!COL31}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:paidToSupplierAmount CONTENT=\"{{!COL32}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:arrearToSupplierAmount CONTENT=\"{{!COL33}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:totalPenalties CONTENT=\"{{!COL34}}\"" + "\n"; 
macroobsh +=  "TAG POS=2 TYPE=A ATTR=TXT:Сохранить" + "\n"; 
macroobsh +=  "WAIT SECONDS=1" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=A ATTR=TXT:OK" + "\n"; 
}
macroobsh +=  "SET !EXTRACT NULL" + "\n";
macroobsh +=  "SET !EXTRACT {{!COL37}}" + "\n";
var xvs = iimGetExtract();
if (xvs != ""){
macroobsh +=  "SET !EXTRACT NULL" + "\n";
macroobsh +=  "TAG POS=1 TYPE=DIV ATTR=TXT:Холодное<SP>водоснабжение" + "\n"; 
macroobsh +=  "TAG POS=r1 TYPE=A ATTR=TXT:Открыть" + "\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:\"{{!COL36}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:totalVolume CONTENT=\"{{!COL37}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:accruedConsumer CONTENT=\"{{!COL38}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:paidByConsumersAmount CONTENT=\"{{!COL39}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:consumerArrears CONTENT=\"{{!COL40}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:cashToProviderPayment CONTENT=\"{{!COL41}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:paidToSupplierAmount CONTENT=\"{{!COL42}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:arrearToSupplierAmount CONTENT=\"{{!COL43}}\"" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:totalPenalties CONTENT=\"{{!COL44}}\"" + "\n"; 
macroobsh +=  "TAG POS=2 TYPE=A ATTR=TXT:Сохранить" + "\n"; 
macroobsh +=  "WAIT SECONDS=1" + "\n"; 
macroobsh +=  "TAG POS=1 TYPE=A ATTR=TXT:OK" + "\n"; 
}
macroobsh +=  "SET !EXTRACT NULL" + "\n";
iimPlay(macroobsh);
}


Макрос доходит до первого
скрытый текст

Выделить код

Код:

macroobsh +=  "TAG POS=2 TYPE=A ATTR=TXT:Сохранить" + "\n";


и завершается без всяких ошибок.
Что я делаю не так?

Отредактировано Aikyaira (16-10-2017 14:01:23)

Отсутствует

 

№29916-10-2017 16:24:59

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 61.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Aikyaira
собственно идем в FAQ и смотрим уроки для новичков в том числе и по связке iMacros+JS

Отредактировано InfSub (16-10-2017 16:25:58)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№30016-10-2017 16:29:36

Aikyaira
Участник
 
Группа: Members
Зарегистрирован: 12-10-2017
Сообщений: 19
UA: Chrome 61.0

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

InfSub
Имеете ввиду, что нужно писать через iimPlay, а не через добавление к переменной?

Отсутствует

 

№30116-10-2017 16:35:40

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 61.0
Веб-сайт

Re: iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Aikyaira
то что я имею ввиду - я написал выше - смотрите видео-уроки, там банальные ошибки новичков - разжеваны
если в 2 словах о ошибках вашего кода: вы пытаетесь, не разбив яйца, получить яичницу


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 
  • Форумы
  •  » iMacros
  •  » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2)

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]