clj-webdriver with recent Clojure/Firefox#
Sun, 14 Dec 2014 23:06:29 +0000
At the time I write this, the latest release of clj-webdriver is 0.6.1. There are two separate problems with this version, at least as far as I can make out
1) some kind of bug which causes it to fail with the message No such
var: clojure.core.cache/through
. I haven't tracked this to its root
cause but am guessing that the [org.clojure/core.cache "0.5.0"]
in
clj-webdriver's project.clj was too old a version for some other
dependency I am pulling in. I added an explicit
[org.clojure/core.cache "0.6.4"] in my project and that seems to have
fixed it. See clj-webdriver issue 132
2) The version of Selenium it pulls in is 2.39, which is too old to work properly with even the vaguely recent version of firefox I'm using (33.1.1). Fixing this is again just a matter of adding the more recent versions of Selenium stuffz as explicit dependencies in project.clj
With those two changes clj-webdriver now seems pretty happy and I can start adding some basic smoke tests to Sledge so that I don't have to manually test client-side behaviours whenever I change it
Done: use reference cursors instead of channels for enqueuing/dequeing tracks
Next up: use a channel for xhr search instead of quite so many callbacks
Forthcoming: more work on UI/UX. Add tabs to switch between search view and play queue, unify the different-for-no-good-reason "search" and "filters".
The branch/commit policy from hereon in is
- it is a bug if master doesn't pass regression tests on my machine
- but there could be any kind of rubbish on branches
- but I firmly subscribe to the Kanban notion of limiting work-in-progress, so will be striving to keep each of these branches short-lived or to declare them moribund at the earliest opportunity
Note that the tests currently depend on having a music collection containing at least four tracks by Queen. This is not ideal and I will fix it some day but in the meantime you'll just have to work around it somehow. Maybe try leaving a USB stick in the car for two weeks or something