We're very happy with our new-ish Selenium + Saucelabs setup for web site automation testing. But as easy as Selenium makes it to compose tests, you will inevitably be frustrated trying to do some of the more complicated test scenarios.
As a web developer, when I run into issues like this with Selenium, I find myself wishing that I could just use jQuery. It's such a familiar tool, that I often think of how I would implement something with jQuery, and then attempt to translate that into the Selenium API.
Another subtly is using getUserWindow() instead of getCurrentWindow(). This is so you can use the jQuery library already loaded by your app. Due to SEL-558, getCurrentWindow() no longer gives you access to dynamically defined document properties, like "jQuery" or "$". Thanks to Christopher Schmidt.
Assuming you already have jQuery loaded in your application, un-checking all the checkboxes on the page is as simple as: