entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

como simular acciones de usuario y eventos de raton

tengo un proyecto casi terminado que consiste brevemente en una pagina de puntuaciones.
para el futuro tengo aun mas ideas, pero necesito automatizar algunas cosas para ahorrar tiempo en desarrollo, entonces mi idea es simular acciones de usuario como iniciar/cerrar sesion, presionar botones, enviar comentarios, para este proposito estoy estudiando la libreria phantomjs la cual se encarga de hacer todo eso, pero en la documentancion oficial no hay muchos ejemplos y no son claras las explicaiones

mi codigo es el siguiente el cual abre una pagina y luego pulsa un boton

// primero se cargan los modulos como en node, luego se instancian
// aqui tengo una duda, que necesidad hay de instaciar el objeto
var webpage = require('webpage');
var page = webpage.create();

// aqui abre la pagina en la url indicada, luego se ejecuta una funcion
page.open("http://www.google.com", function start(status) {

// en la doc hay un metodo que sirve para simular eventos pero no se como utilizarlo, 
// lo he intentado de la siguiente manera

page.sendevent('click', function(){}) // aqui es donde me pierdo, cual serian el codigo a seguir??
  phantom.exit(); 
});

1 Respuesta

2votos

x4mp73r Puntos13320

Encontré un ejemplo:

function mouseclick( element ) {
    // crea el evento del click del ratón
    var event = document.createEvent( 'MouseEvents' );
    event.initMouseEvent( 'click', true, true, window, 1, 0, 0 );

    // envía el clic al elemento
    element.dispatchEvent( event );
}

function handle_page( page ) {
    page.evaluate(
        function( mouseclick_fn ) {
            var element = document.querySelector( "input#payConf" );
            mouseclick_fn( element );
        },
        mouseclick
    );

    window.setTimeout(
        function () {
            handle_click_reaction( page );
        },
        5000
    );
}

Puedes consultar la fuente original

steven comentado Dic 22, 2016

hay algunas cosas que no entiendo, porque dentro de la primera funcion en la siguiente linea pasas valores boleanos y numeros
event.initMouseEvent( 'click', true, true, window, 1, 0, 0 );

luego en la siguiente linea tampoco entiendo como mandas el evento si el elemento lo creas despues, por ultimo no entiendo porque creas un temporizador al final y porque anidas todas las funciones.

x4mp73r comentado Dic 23, 2016

@algoritmico Como mencioné arriba: "Encontré un ejemplo...", perdón si no es correcta, solo la publiqué por si te servía. También te dejé la fuente original para que la consultes y verifiques, una disculpa si no te fue de ayuda.

Por favor, accede o regístrate para responder a esta pregunta.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Actividad Reciente

¿Eres Usuario Apple?

...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta