Imacros / Java Требуется решение для проверки наличия элемента. Если да, то для извлечения и сопоставления, а если нет, то для продолжения

Я только что присоединился к нам и все еще изучаю imacros и java, поэтому извиняюсь, если я показался немного медленным! В настоящее время у меня есть этот код в imacros, чтобы проверить элемент на определенное значение, а затем найти обходные пути в java:

TAG POS=1 TYPE=P ATTR=TXT:* EXTRACT=TXT
SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; if(s.match(\"error\")){url=\"imacros://run/?m=#Current.js\";} else url=\"imacros://run/?m=#Current2.iim\"; url;")
URL GOTO={{!VAR2}}

Я знаю, что он не оптимизирован фантастически, но он работает. Но вот новая проблема. Мне нужно сделать это снова с другим элементом, которого нет всегда. Итак, как мне это сделать? Это соответствующая строка imacros ...

TAG POS=1 TYPE=SPAN ATTR=TXT:Click

Так что да, мне нужно извлечь его и сравнить, как в первом примере, но, как я уже сказал, он существует только в 20-30% случаев. Поэтому его необходимо проверить, существует ли он, если он существует, затем запустить if else, а если нет, то продолжить как обычно.

Заранее спасибо, ребята!

Если есть более эффективный способ сделать что-то в первом примере, то это тоже было бы здорово, потому что я знаю, что он раздувается и заставляет FF забирать больше памяти

И да, я искал и видел это:

Проверьте, существует ли элемент html с iMacros и javascript < / а>

и это:

Проверить, существует ли элемент в jQuery

Но я все еще сбит с толку и ошеломлен, потому что я новичок в js ...


person FadeToBlack    schedule 25.11.2016    source источник


Ответы (1)


Прежде всего, вы должны прочитать вики-информацию об интерфейсе сценариев JavaScript в iMacros для Firefox.
После этого взгляните на js-скрипты в папке "Demo-Firefox" по умолчанию.

Чтобы лучше понять этот принцип, вот как может выглядеть ваш первый код:

iimPlayCode("TAG POS=1 TYPE=P ATTR=TXT:* EXTRACT=TXT");

var s = iimGetExtract();
if (s.match("error")) {
    // not good idea to run 'js' from 'js' scripts
    iimPlayCode("URL GOTO=imacros://run/?m=#Current.js");
} else {
    // it's alright here
    iimPlay("#Current2.iim");
}
person Shugar    schedule 26.11.2016
comment
Спасибо за ответ, я уже реализовал это таким образом, но не могли бы вы дать мне совет по второй половине вопроса? - person FadeToBlack; 27.11.2016