some image

phantomjs click event, клик на любом элементе страницы не работает

Обо всем

В phantomjs 1.9+ есть очень неприятный баг, связанный с тем, что вы не можете кликнуть по-настоящему практически не по какому элементу. Вы можете вызвать событие click() с помощью jQuery, например, но это не заменяет стандартного поведения браузера. Например, кликнув на label в обычном браузере, вы меняете значение чекбокса, привязанного к нему. Здесь этого нет. Так же здесь нет каскадной передачи клика родительским элементам.
Для решения данной проблемы существует следующий хак, проверен лично на avito.ru:

function mouseclick( element ) { //расширяем возможности phantomjs, делаем новую функцию настоящего клика по элементу
    // create a mouse click event
    var event = document.createEvent( 'MouseEvents' );
    event.initMouseEvent( 'click', true, true, window, 1, 0, 0 );
 
    // send click to element
    element.dispatchEvent( event );
}

page.evaluate( //выполняем яваскрипт на странице, при этом передаем туда созданную ранее функцию
        function( mouseclick_fn ) {
            var element = jQuery( "label[for=service_4]" )[0];
            mouseclick_fn( element );
        },
        mouseclick
    );
setTimeout(function(){
	//проверяем результат
	//обязательно подождите пару секунд после клика по элементу, дайте браузеру сделать то, что вы задумали и пройти всем сопутствующим эвентам
}, 2000);