iMacros-使用xpath和loop命令提取字符串

问题描述

我想使用xpathloop命令提取字符串。

我想从xpath提取一个字符串,其中tr的值增加一。

①/html/body/div[1]/div[2]/div/div/div[3]/div[4]/div[2]/div[2]/div/div[2]/table/tbody/tr[1]/td[3]/div/div[1]/a
②/html/body/div[1]/div[2]/div/div/div[3]/div[4]/div[2]/div[2]/div/div[2]/table/tbody/tr[2]/td[3]/div/div[1]/a

但是当我播放循环时,它仅提取一个字符串的值。代码如下。

SET !LOOP 1
TAG XPATH="/html/body/div[1]/div[2]/div/div/div[3]/div[4]/div[2]/div[2]/div/div[2]/table/tbody/tr[{{!LOOP}}]/td[3]/div/div[1]/a" EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}
SET !CLIPBOARD {{!VAR1}}

OS:Firefox81.0 VERSION BUILD = 10021450

解决方法

您的脚本对我来说看起来不错...,我将其重新发布,因为您的OP有点难以阅读,因为您未使用任何格式设置,并且某些Edit已经处于待处理状态,因此我无法自己对其进行编辑...:

SET !LOOP 1
TAG XPATH="/html/body/div[1]/div[2]/div/div/div[3]/div[4]/div[2]/div[2]/div/div[2]/table/tbody/tr[{{!LOOP}}]/td[3]/div/div[1]/a" EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}
SET !CLIPBOARD {{!VAR1}}

使用“相对定位”可能比使用“ XPATH”更容易...
=>“ TD [1]”或“ TD [2]”中的任何内容(或“ TD [3]”之后的其他任何单元格)都可以用作“锚点” ...

否则,如果“ TABLE”是页面上唯一的“ TABLE”,则我希望下面的方法可以使用两次“双重相对位置”,这是我在iMacros论坛上多次解释过的技术。 ..:

TAG POS=1 TYPE=TABLE ATTR=* EXTRACT=TXT
TAG POS=R-1 TYPE=* ATTR=* EXTRACT=TXT
TAG POS=R{{!LOOP}} TYPE=TR ATTR=* EXTRACT=TXT
TAG POS=R-1 TYPE=* ATTR=* EXTRACT=TXT
SET !EXTRACT NULL
TAG POS=R3 TYPE=TD ATTR=* EXTRACT=TXT
PROMPT EXTRACT:<SP>_{{!EXTRACT}}_

除了last = real的“ EXTRACT”,如果所有这些元素都不是“可单击的”,则可能不需要之前的所有“ EXTRACT” x4,并且很可能可以简化脚本,但您未提供任何URL ,所以我看不到Page及其HTML结构...