Imacros Javascript:检查多行条件下是否存在元素

时间:2017-12-14 10:04:40

标签: javascript imacros

我正在尝试检查网页中是否存在元素

我之前看过这个简单的东西是怎么做的, Check if html element exists with iMacros and javascript

(我想在那里评论,但它说最少需要50个代表)

我所说的简单的东西是这样的。

var macro;

macro ="CODE:";
macro +="TAG POS=1 TYPE=DIV ATTR=CLASS:some_class CONTENT=EVENT:MOUSEOVER ";

var ret=null;

ret=iimPlay(macro);

if(ret>0)
{
//do something
}
else
{
//do something else
}

但不幸的是,当谈到几行检查.. 正如我需要补充的那样,为了让整个过程更有效地运行..

SET !ERRORIGNORE YES
SET !TIMEOUT_STEP 2

ret 变量的返回始终为1(我在不同情况下提示它的值)。 所以其他条件永远不会满足。

我该怎么办?

更新:(实际案例) 这里的情况,网页的元素在滚动到它之前是不可见的。说你在Facebook上。在您滚动到文章元素之前,“添加注释”按钮不可见。它适用于这种算法。

// loop start
for(;;){
  iimplaycode(*hover tag:nth-of-type(i)*);

  x=iimplaycode(*check if add comment is there*);

  if(x>0){
    //if it's there, do comment
     iimplaycode();
  }
  //loop to 2nd element
}

现在看到问题?如果我没有使用!TIMEOUT_STEP,则“添加评论”的检查需要很长时间(6秒)。只是想通过将其值降低到大约1,2秒来最大化性能。

1 个答案:

答案 0 :(得分:0)

正如您认为的那样,您需要删除

SET!ERRORIGNORE YES

为什么需要它?