2016-11-25 6 views
0

Я только что присоединился к вам и все еще изучаю 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, а если нет, то продолжить как обычно.

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

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

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

Check if html element exists with iMacros and javascript

и это:

Check if element exists in jQuery

Но я все еще смущен и перегружен, потому что я совершенно не знаком с js .....

ответ

0

Прежде всего, вы должны прочитать информацию о вики как о JavaScript Scripting Interface in 'iMacros for Firefox'.
После этого взгляните на js-скрипты в папке «Демо-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"); 
} 
+0

Спасибо за ответ, я реализовал это таким образом сейчас, но вы можете дать мне какие-либо консультации по вопросам вторая половина вопроса? – FadeToBlack