PhantomJS .click() not working

click, javascript, phantomjs

Solution

This will give you a proper solution to the situation

page.evaluate(function(){
    var a = document.getElementById("target_element_to_be_clicked");
    var e = document.createEvent('MouseEvents');
    e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    a.dispatchEvent(e);
});

Hope this helps

Problem

This code does not work: ``` var page = require('webpage').create(); page.open('http://www.ebay.com/', function() { console.log('Page loaded'); page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js', function() { console.log('jQuery included'); page.render('C:/beforeclick.jpeg'); console.log('Render 1'); page.evaluate(function() { $('.btn-prim').click(); }); page.render('C:/afterclick.jpeg'); console.log('Render 2'); }); }); ``` In fact $('.btn-prim').click() does not work, beforeclick.jpeg and afterclick.jpeg are the same. In browser console $('.btn-prim').click() works fine. Ebay here just for example, it does not work on other sites too. Please help me to solve the problem, I am novice in JavaScript.

Original source

Related problems