CasperJS is not a node module that you can require. It is installed globally (-g) so that spooky can find the executable in the PATH. You don't need npm to install CasperJS. Just put it somewhere and add its directory to the PATH. As said in the comments, it is...

The problem is that the element is inside of an iframe. The element can be selected, but you first need to switch into the context of the iframe to run operations on it. This is done through withFrame(). You can either select the iframe by index or name. Here is...

This is very likely related to a bug in PhantomJS 1.x which doesn't correctly find elements based on CSS selectors that use :nth-child(). See this question for more information. Since CasperJS supports XPath expressions for almost all of its functions, you can translate the CSS selector to an XPath expression:...