We just shipped PhantomJS 1.7, and work for 1.8 is already started (check out the
ghostdriver-dev branch I linked above).
GhostDriver has reached almost 90% completion for 1.0, and the code is being hardened, thanks also to the amazing work that Jim Evans is doing at spotting issues and, a lot of times, providing fixes. GhostDriver is getting better and better thanks to you Jim.
Yes, but in short, what’s left to do?
Based on my plan, to release 1.0 I’m missing “only”:
- Handling of
- Handling of
- Handling fo
Recently though I have been thinking and discussing with others and I decided that I’d delay the support for those 3 things in favour of:
- Fix issues related to Mouse interaction
- Integrate GhostDriver into PhantomJS itself (I need to prepare a plan with Ariya)
- Providing a Java Binding (Jim Evans already pushed a .Net binding into the Selenium codebase)
- Code hardening
WHAAAAT? Are you crazy? No “alert()”?
Yeah, I know. While
LocalStorage can be seen as nice-to-have features for
1.0, being able to interact with
alert() (and relata) is a big deal.
The issue there is that the current PhantomJS doesn’t provide an easy way to implement those commands: while PhantomJS does provide support for
confirm (I wrote them myself!), it will probably require quite some work to “adapt” PhantomJS/GhostDriver to the way the WebDriver API work for those things.
In short: PhantomJS allows you to register a
onAlert/onConfirm/onPrompt callback to handle those events - WebDriver treats those as a “state” in which the Window is. Maybe I could write a never-returning callback? I don’t know, it requires time to think about the best solution.
And that the point: I think I got no time now.
The best thing I can do right now
Time is key here.
I think the best thing I can do right now for the PhantomJS WebDriver project future, is to release a 1.0 version, with the hope it will receive enough road test, so that 1.1 and later can be better, comprehensive, more WebDriver-worthy.
Ah, and did I mention that I’m moving to Amazon LoveFilm? But that’s for another post…