2013-05-13 2 views
1

Я использую бесплатный плагин imacros для Firefox, чтобы очистить данные из формы поиска javascript на веб-сайте. Вот разбивка моего текущего макроса, который работает, чтобы извлечь один набор результатов для меня.imacros firefox loop through results and extract

Часть макроса ниже автоматически вводит ключевое слово «супермен» в форму поиска.

VERSION BUILD=8300326 RECORDER=FX 
TAB T=1 
URL GOTO=http://www.example.com/pricelist 
FRAME F=1 
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/Pricelistsearchform/ ATTR=ID:Keyphrase CONTENT=superman 
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:/Pricelistsearchform ATTR=NAME:SearchBarcode&&VALUE:Get<SP>Value 

Приведенный ниже список результатов будет загружен. Теперь я использую следующее выражение XPath для выбора первого результата, который появляется в списке:

TAG XPATH=id('SearchForm')/form/fieldset/table/tbody/tr[3]/td[1]/a 

Форма Теперь перезагружает с названием и ценой выбранного продукта, и я использую эти два XPATH выражения для извлечения этих данных:

TAG XPATH=id('Results')/table/tbody/tr[2]/td[2] EXTRACT=TXT 
TAG XPATH=id('Results')/table/tbody/tr[2]/td[4] EXTRACT=TXT 
BACK 

Затем я использую инструкцию BACK, которая возвращает меня в список результатов.

Все это прекрасно работает, чтобы извлечь первый результат в списке i.e «супермен». Однако есть много других результатов, которые я хотел бы пропустить и очистить (супермен 2, супермен 3, специальный выпуск супермена e.t.c). Множественные результаты представлены в следующем формате:

TAG XPATH=id('SearchForm')/form/fieldset/table/tbody/tr[3]/td[1]/a ..i.e superman 
TAG XPATH=id('SearchForm')/form/fieldset/table/tbody/tr[4]/td[1]/a ..i.e superman 2 
TAG XPATH=id('SearchForm')/form/fieldset/table/tbody/tr[5]/td[1]/a ..i.e superman 3 ...etc 

Я хотел бы использовать цикл, чтобы выбрать каждый из этих результатов по одному за раз, извлечь свое имя и цену, а затем вернуться назад и выбрать следующий результат список и т. д. Я предполагаю, что мне нужно использовать символ подстановки (*) и оператор {{! LOOP}}, но я не уверен, как их реализовать в моем коде или мне нужно использовать Javascript.

Большое спасибо за помощь

ответ

1

попробовать это

set !loop 3 
TAG XPATH=id('SearchForm')/form/fieldset/table/tbody/tr[{{!loop}}]/td[1]/a 

или просто

set !loop 3 
tag pos={{!loop}} type=a attr=id:SearchForm extract=txt 
+0

Благодаря это работает! –