Imacros firefox通过结果和提取循环
imacros firefox loop through results and extract
我正在使用imacros免费插件firefox从网站上的javascript搜索表单抓取数据。下面是我当前的宏的分解,它可以为我提取一组结果。
下面的宏部分自动在搜索表单中输入关键字"superman"。
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语句返回结果列表。
这一切都可以很好地提取列表中的第一个结果,即"超人"。然而,还有许多其他的结果,我想循环和刮(超人2,超人3,超人特别版等)。多个结果以以下格式列出:
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
我想使用循环一次选择这些结果中的一个,提取它们的名称和价格,然后返回并在列表中选择下一个结果,依此类推。我假设我需要使用通配符(*)符号和{{!语句,但我不确定如何在我的代码中实现这些,或者我是否需要使用Javascript。
非常感谢您的帮助
try this
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
相关文章:
- jQuery:循环一个具有不同超时值的循环
- 在循环中分配json值时,值被覆盖
- 使用从forEach循环中提取的国家代码从数组中获取国家名称
- 循环遍历数字和字母数组并仅提取数字
- 如何使用循环提取数组中的json数据
- 查询在强循环中基于一个表从另一个表中提取信息
- Jquery 每个循环都无法提取值,除非使用 setTimeout
- imacros JavaScript 循环基于提取的值
- Ajax在循环中提取相同的数据,而不考虑url
- 如何使用for循环从另一个元素中提取一个元素,并在JavaScript中插入数组
- 从循环中提取数据时出现问题
- 需要使用'对于循环'从表中提取数据
- 为什么我的json数据没有用jquery从每个循环中提取
- 当在数组中找到关键字时,在对象中循环以提取属性名称的问题
- Imacros firefox通过结果和提取循环
- 下面是提取一些十六进制数据,解释它并将其打印到console.log的代码.在'req'循环,但不是在外
- 使用Javascript从JSON表示法循环并提取项值
- 如何在javascript中使用提取元素循环图像
- 循环时是否可以只提取关键部分
- 为什么javascript代码在循环内工作,一旦代码被提取到一个单独的函数