Цикл for не работает должным образом для метода click () - PullRequest
0 голосов
/ 04 апреля 2019

Мне нужно эмулировать несколько нажатий кнопок на веб-сайте и хочу использовать для цикла, чтобы сделать это, но он не работает должным образом (он щелкает только один раз).

for (i=0; i<10; i++) {
  document.getElementById("increase_your_bet_button").click();
}

ОБНОВЛЕНИЕ: Я перепробовал все предложенные решения, но ничего не получилось, и он запустился только один раз. Поиграл с setTimeout и в итоге нашел разумное решение:

for (let i=0; i<10; i++) {
setTimeout(function() {
document.getElementById("increase_your_bet_button").click();
}, 1000*(i+1));
}

Ответы [ 2 ]

2 голосов
/ 04 апреля 2019

отлично работает:

for (i = 0; i < 10; i++) {
  document.getElementById("increase_your_bet_button").click();
}
.as-console-wrapper { max-height: 100% !important; top: auto; }
<button id="increase_your_bet_button" onclick="console.log('Click!')">Click!</button>
0 голосов
/ 04 апреля 2019

у меня сработало.

const btn = document.getElementById('increase_your_bet_button');

btn.addEventListener('click', () => console.log('clicker'));

for (let i = 0; i < 10; i++) {
  btn.click();
}
<button id="increase_your_bet_button">Increase your bet</button>

Чтобы решить эту проблему, попробуйте использовать асинхронный цикл, например:

const btn = document.getElementById('increase_your_bet_button');

btn.addEventListener('click', () => console.log('clicker'));

let i = 0;

// Click every millisecond.
function clickTenTimes() {
  btn.click();

  i++;
  if (i < 10)
    setTimeout(clickTenTimes, 1);
}

clickTenTimes();
<button id="increase_your_bet_button">Increase your bet</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...