Click on all links matching a selector
casperjs
Solution
I ended up using the nth-child() selector to accomplish this. Here's how...
Page:
<ul id="links">
<li><a href="#1">1</a></li>
<li><a href="#2">2</a></li>
<li><a href="#3">3</a></li>
</ul>
Script:
casper.then(function() {
var i = 1;
this.repeat(3, function() {
this.click('#links li:nth-child(' + i + ') a');
i++;
});
});
You obviously don't have to use repeat but any iteration technique should work.
Problem
I have a list of links that I have to simulate a click on using CasperJS. They all share the same class. However using `this.click('.click-me')` only clicks on the first link. What's the proper way of clicking on all the links? I'm thinking that maybe I should try to get the number of links via `evaluate()` and then use a `for` loop. But if I use `evaluate()` with the number of links I have to use messages to communicate back and that seems complicated. Is there a better way?