首页 > 解决方案 > 只有此循环的第一部分有效(JavaScript)

问题描述

我的工作是制作一个自动浏览器机器人。

我尝试了这段代码来做我需要的事情。

// first finding and selecting button
var Select = document.getElementsByClassName('Login');
Select[0].click();
// second finding and selecting button
var Select2 = document.getElementsByClassName('OK');
Select2[0].click();

让我为你解释一下这段代码。这段代码试图找到一个类名为“登录”的按钮,然后它会点击那个按钮。之后会出现一个新窗口。接下来这段代码将尝试在其中找到另一个按钮那个新窗口,然后点击那个。

好的。这段代码很好,没有问题,因为我想把它放在一个循环中,让每件事都自动化。

for (i = 0; i < 5; i++) {
  // first finding and selecting button
  var Select = document.getElementsByClassName('Login');
  Select[0].click();
  // second finding and selecting button
  var Select2 = document.getElementsByClassName('OK');
  Select2[0].click();
}

好吧,现在当我运行这段代码时,第一次它会执行得很好,但不会有第二次了。浏览器的控制台向我显示:

我的问题

第一次将执行所有代码,但第二次只执行第一次查找和单击按钮。当新窗口出现时,我的代码不再工作,它很糟糕,第二次查找和单击按钮将不会发生。

这些是第二个按钮的属性:

    <button type="button" class="OK" ng-click="OK()">
        <i class="btnIcon"></i>
        confirm
    </button>

标签: javascriptgoogle-chrome

解决方案


好吧,我终于找到了解决方案。当代码使用缓存文件时,该网站不允许我运行 Java Script 代码。代码没问题!


推荐阅读