Я использую бесплатный плагин 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.
Большое спасибо за помощь
Благодаря это работает! –