ChemistryKit’s first commit was made circa December 2012. And it all started out as a simple concept – write a Ruby version of Saunter.
At the time, Adam Goucher’s open source Selenium framework, Saunter, was only available in PHP and Python. Excited, Adam, Jason Wieringa, and myself pulled together an initial prototype. It was by no means at feature parity with Saunter, but we deemed it “good enough to ship”.
Jason W. slowly rolled off the project and Adam got busy (as he’s wont to do). But during this time I pushed on with ChemistryKit. I revisited the code-base quite a bit, constantly looking for areas to refactor and improve.
Before too long I stumbled onto a chunk of code that jumbled together in a disconcerting way. The code served such an essential purpose, but it was too tangled to untie. The only thing to do was cut it loose and rebuild it. As a result, selenium-connect was born – ChemistryKit’s only supporting library, and it’s backbone.
Fast forward to June 2013, Jason Fox rolls onto the project just as we landed our first corporate gig using ChemistryKit. The company that hired us asked us to create a set of automated tests while also also building out ChemistryKit. Over the course of the following three months we extended ChemistryKit like crazy and battle-tested it against hundreds of Selenium tests. A majority of the features that you see in the library today were born out of this engagement.
Since then, ChemistryKit and selenium-connect haven’t seen much love. But that’s about to change because I’m rewriting ChemistryKit.
This new version is something I’ve been thinking about for a long time and it will be different. The goal of ChemistryKit has always been to offer a turn-key solution for Selenium that will scale with your needs. But not everyone wants to switch to a new testing framework if they already have one.
To wit, ChemistryKit will be built using micro-libraries. Together these libraries will form ChemistryKit (like Voltron) and serve as a turn-key Selenium solution. But on their own, these libraries can be used as supporting libraries in an existing testing harness. Additionally, all libraries will be built with Microsoft Windows support.
I’ll have more details in my next post. Stay tuned!