В 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);