首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iMacros iimGetExtract()

iMacros iimGetExtract()
EN

Stack Overflow用户
提问于 2017-08-08 14:45:59
回答 1查看 900关注 0票数 0

我是JavaScript的新手,我需要一些帮助从iMacros中获得最后的提取值。问题是,当我使用JavaScript函数alert()时,它显示了正确的最后提取,但是如果条件不起作用的话。

宏步骤:

  1. 单击基于循环定位的图像
  2. 点击按钮,如果有文本,提取文本,如果文本是2,启动另一个iim代码。代码更复杂,这只是提取调试的一部分,这对于启动另一段代码的条件词很重要。

我得到的错误是:

TypeError:路径未定义,行-633 (错误代码:-991)

以下是代码:

代码语言:javascript
复制
var numPage = prompt("current numPage?");
numPage++;
var i = 1;
var macroStart;
macroStart =  "CODE:";
macroStart +=  "'set global variables" + "\n"; 
macroStart +=  "SET !EXTRACT_TEST_POPUP NO" + "\n"; 
macroStart +=  "SET tabCheck NULL" + "\n";
macroStart +=  "SET !ERRORIGNORE YES" + "\n"; 
macroStart +=  "SET !EXTRACT NULL" + "\n"; 
macroStart +=  "SET !TIMEOUT_STEP 1" + "\n"; 
macroStart +=  "SET !CLIPBOARD NULL" + "\n"; 
macroStart +=  "SET productUrl {{!URLCURRENT}}" + "\n"; 
macroStart +=  "TAG POS={{i}} TYPE=IMG ATTR=SRC:https://www.xxx.sk/admin/xxx/xxx/img/uprav.gif" + "\n"; 
macroStart +=  "TAG POS=1 TYPE=A ATTR=ID:zalozka_obrazky" + "\n"; 
macroStart +=  "TAG POS=1 TYPE=A ATTR=TXT:2 EXTRACT=TXT" + "\n"; 

macroStartExtract = iimGetLastExtract();
if (macroStartExtract == 2) {
     var goToProductUrl;
     goToProductUrl +=  "'back to main product's page" + "\n"; 
     goToProductUrl +=  "SET !VAR5 2" + "\n"; 
     goToProductUrl +=  "PROMPT !VAR5" + "\n";
     iimPlay(goToProductUrl);
    } else {iimPlay(goToProductUrl);}


var macroChangePage;
macro2 = "CODE:"
macro2 += "TAG POS=2 TYPE=A ATTR=TXT:{{numPage}}"

while (i < 2) {
    iimSet("i",i)
    iimPlay(macroStart)
    i++;

    if (i == 2) {
         iimSet("numPage", numPage)
         iimPlay(macroChangePage)
         numPage++
         i = 1;
    }
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-09 20:39:35

我检查了代码中的问题,发现它在下面的块中失败了。

代码语言:javascript
复制
else {iimPlay(goToProductUrl);}

因为goToProductUrl变量是在if条件下定义的。if没有被执行,当它进入else块时,变量是未定义的,因此程序失败。由于缺少URL而无法检查程序工作,但其他块是否应该是这样的呢?

代码语言:javascript
复制
else {iimPlay(macroStart);}

javascript错误已修复,请尝试在删除错误后构建代码。

代码语言:javascript
复制
var numPage = prompt("current numPage?");
numPage++;
var i = 1;
var macroStart;
macroStart =  "CODE:";
macroStart +=  "'set global variables" + "\n"; 
macroStart +=  "SET !EXTRACT_TEST_POPUP NO" + "\n"; 
macroStart +=  "SET tabCheck NULL" + "\n";
macroStart +=  "SET !ERRORIGNORE YES" + "\n"; 
macroStart +=  "SET !EXTRACT NULL" + "\n"; 
macroStart +=  "SET !TIMEOUT_STEP 1" + "\n"; 
macroStart +=  "SET !CLIPBOARD NULL" + "\n"; 
macroStart +=  "SET productUrl {{!URLCURRENT}}" + "\n"; 
macroStart +=  "TAG POS={{i}} TYPE=IMG ATTR=SRC:https://www.xxx.sk/admin/xxx/xxx/img/uprav.gif" + "\n"; 
macroStart +=  "TAG POS=1 TYPE=A ATTR=ID:zalozka_obrazky" + "\n"; 
macroStart +=  "TAG POS=1 TYPE=A ATTR=TXT:2 EXTRACT=TXT" + "\n"; 

macroStartExtract = iimGetLastExtract();
if (macroStartExtract == 2) {
     var goToProductUrl;
     goToProductUrl +=  "'back to main product's page" + "\n"; 
     goToProductUrl +=  "SET !VAR5 2" + "\n"; 
     goToProductUrl +=  "PROMPT !VAR5" + "\n";
     iimPlay(goToProductUrl);
    } else {iimPlay(macroStart);}


var macroChangePage;
macro2 = "CODE:"
macro2 += "TAG POS=2 TYPE=A ATTR=TXT:{{numPage}}"

while (i < 2) {
    iimSet("i",i)
    iimPlay(macroStart)
    i++;

    if (i == 2) {
         iimSet("numPage", numPage)
         iimPlay(macroChangePage)
         numPage++
         i = 1;
    }
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45571470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档