Tampermonkey 脚本无法修改表单控件

Tampermonkey script failing to amend form controls

我正在为博彩网站制作脚本以使其自动化,但我的脚本无法正常工作。

我想自动点击 ID 为 #box38#playBtn#resetStats 的按钮。我还希望当我输了时,将赌注增加到 0.00000004,当我赢时,将其重置为 0.00000001,但这也不起作用,我不知道为什么。

有 2 个 ID 为 #currentWins#currentLossess 的文本。为什么那不起作用?

我只想让这些起作用:

代码根本不起作用。我也在使用 TamperMonkey,我没有忘记添加最新版本的 jQuery

HTML:

三个按钮:

<a id="resetStats">RESET</a>
<div class="box" id="box38" onclick="Game.play(38); return false;"></div>
<button class="btn blue" id="playBtn" onclick="Game.play(0); >LET'S GO!</button>

和 div 标签中的 2 个文本:

<div class="input green" id="currentWins">0</div>
<div class="input red" id="currentLosses">0</div>
function doit() {
  window.setInterval(event1, 2000);

  $("#playBtn").click();

  function event1() {
    $("#box38").click();

    (function() {
      $("#resetStats").click();
      $("#playBtn").click();
      setTimeout(arguments.callee, 5000);
    })();
  }

  function winloss() {
    var wins = $("div#currentWins").text();
    var loss = $("div#currentLosses").text();
    if (wins == 1) {
      document.getElementById("betAmount").value = "0.00000001";
      doit();
    } else if (loss == 1) {
      document.getElementById("betAmount").value = "0.00000004";
      doit();
    }
  }
}

经过一番调查,我发现存在多个问题。

  • doit 从未调用过。
  • winloss 从未调用过。
  • 您在完成 winloss 后调用了 doit,即使查看您的代码,您打算单击 #box38 一次。
  • 您调用了 $("#playBtn").click,尽管它已经在 event1 私有函数中自动循环。
  • 在您提供的 HTML 中,没有 #betAmountvalue 属性。
  • 在您提供的 HTML 中,#resetStats 作为 <a>,但它很可能是一个按钮。

所以希望我正确阅读了你的代码和问题,并且重构了它:

function doit() {
  event1()

  function event1() {
    $("#box38").click();
    winloss();
    (function() {

      winloss()
      $("#resetStats").click();
      $("#playBtn").click();
      setTimeout(arguments.callee, 5000);

    })();
  }

  function winloss() {
    const lost = $("div#currentLosses").text() != 0
    if (lost) {
      document.getElementById("betAmount").value = "0.00000004";
    } else {
      document.getElementById("betAmount").value = "0.00000001";
    }
  }

}
doit()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="resetStats" onclick="$('div#currentWins').text(0);$('div#currentLosses').text(0)">RESET</button>
<script>
  let Game = {
    play: function(a) {
      if (a == 38) {
        return false
      }
      setTimeout(function() {
        let wins = $("div#currentWins").text()
        let losses = $("div#currentLosses").text()
        if (Math.random() > 0.5) {
          wins++
        } else {
          losses++
        }
        $("div#currentWins").text(wins)
        $("div#currentLosses").text(losses)
      }, 4000) //Simulating API delay
    }
  }
</script>
<div class="box" id="box38" onclick="Game.play(38); return false;"></div>
<button class="btn blue" id="playBtn" onclick="Game.play(0);">LET'S GO!</button>
<div class="input green" id="currentWins">0</div>
<div class="input red" id="currentLosses">0</div>
<input id="betAmount" value="0">