Eu tenho um hiperlink na minha página. Estou tentando automatizar vários cliques no hiperlink para fins de teste. Existe alguma maneira de simular 50 cliques no hiperlink usando JavaScript?
<a href="#" target="_blank" onclick="javascript:Test("Test");">MSDN</a>
Estou procurando o acionador de evento onClick do JavaScript.
javascript
dom-events
user171523
fonte
fonte
for(
.ATUALIZAR
Esta foi uma resposta antiga. Atualmente você deve apenas clicar . Para disparos de eventos mais avançados, use dispatchEvent .
Resposta original
Aqui está o que eu uso: http://jsfiddle.net/mendesjuan/rHMCy/4/
Atualizado para trabalhar com o IE9 +
Observe que chamar
fireEvent(inputField, 'change');
não significa que realmente alterará o campo de entrada. O caso de uso típico para disparar um evento de mudança é quando você define um campo programaticamente e deseja que os manipuladores de eventos sejam chamados, pois a chamadainput.value="Something"
não acionará um evento de mudança.fonte
jQuery
ou não). Posso fornecer ajuda mais significativa se você fizer uma nova pergunta com o código exato que estava tentando, mas não estava funcionando.o que
does é exatamente chamar a
onclick
função del
, isto é, se você tiver definido um coml.onclick = myFunction;
. Se você não definiul.onclick
, não faz nada. Em contraste,simula um clique e aciona todos os manipuladores de eventos, adicionados com
l.addEventHandler('click', myFunction);
, em HTML ou de qualquer outra forma.fonte
window
objeto, ele não exibirá magicamente umawindow.click
função.Tenho muita vergonha de haver tantas aplicabilidades parciais incorretas ou não reveladas.
A maneira mais fácil de fazer isso é através do Chrome ou Opera (meus exemplos usarão o Chrome) usando o console. Digite o seguinte código no console (geralmente em 1 linha):
Isso irá gerar o resultado necessário
fonte
.click()
não funciona com o Android (consulte os documentos do mozilla , na seção móvel). Você pode acionar o evento click com este método:A partir desta postagem
fonte
.click()
não funciona com Android" Na verdade, a tabela mais recente diz "Compatibilidade desconhecida".Use uma estrutura de teste
Isso pode ser útil - http://seleniumhq.org/ - O Selenium é um sistema de teste automatizado de aplicativos da web.
Você pode criar testes usando o plugin Selenium IDE do Firefox
Disparo manual de eventos
Para disparar manualmente os eventos da maneira correta, você precisará usar métodos diferentes para diferentes navegadores -
el.dispatchEvent
ouel.fireEvent
ondeel
será o seu elemento Anchor. Acredito que ambos exigirão a construção de um objeto Event para passar.A maneira alternativa, não totalmente correta, rápida e suja seria a seguinte:
fonte
IE9 +
Exemplo de uso:
Fonte: https://plainjs.com/javascript/events/trigger-an-event-11/
fonte
Aviso justo:
element.onclick()
não se comporta conforme o esperado. Ele executa apenas o código dentroonclick="" attribute
, mas não dispara o comportamento padrão.Eu tive um problema semelhante com o botão de opção não configurado para marcado, mesmo que a
onclick
função personalizada estivesse funcionando bem. Tinha que adicionarradio.checked = "true";
para configurá-lo. Provavelmente o mesmo vale para outros elementos (depoisa.onclick()
deve haver tambémwindow.location.href = "url";
)fonte
onclick()
significaria que oevent
objeto não será definido automaticamente pelo navegador, portanto métodos comuns comoevent.stopPropagation()
também serão indefinidos.fonte