My understanding is that SlimerJS support in CasperJS is currently experimental (CasperJS 1.1.0-beta1, SlimerJS 0.8). And there are differences between the SlimerJS and CasperJS APIs.
Before I found this out, I assumed that the ultimate goal of CasperJS was to be a single framework that could run the same script against either Gecko (with SlimerJS) or WebKit (with PhantomJS), and I wouldn't need to "learn" Slimer or Phantom.
It now looks like there is limited abstraction, in which case I might as well use each underlying frameworks directly. Is the point that some abstraction is better than none, and things are likely to improve?
I am not asking for an opinion on "which framework is better right now" or "is CasperJS good enough". I want to understand the (documented, possibly aspirational) goals of CasperJS.
From https://github.com/casperjs/casperjs/issues/1905 :