 <p>I have an idea. If you can get the element in evaluate you can fireEvent on it. So create a function that will fireEvent.</p> <pre><code> function casperFireEvent(element, eventType) { if ("createEvent" in document) { var evt = document.createEvent("HTMLEvents"); evt.initEvent(eventType, false, true); element.dispatchEvent(evt); } else { element.fireEvent("on"+eventType); } } </code></pre> <p>Then on you loop you can do this :</p> <pre><code> this.evaluate(casperFireEvent(document.getElementById('links[i]'), 'click')); </code></pre> <p>I'm not sure it it's conventional but that's a start.</p>