Author Archives

Cooking With Web Automation – JQuery UI Menus

So I am officially sick and tired of seeing webinars on ‘locators’ and ‘[basic] synchronization’ and ‘page objects’. There is enough good content out there for all those topics … and a sea of horrid, but that’s a separate problem. What I want to see is more of the ‘secret tricks’ around the things that [...]

So you want to build a framework…

My first foray into the ‘framework’ business was likely 1999 at one of the big Canadian banks. We were automating binders, literally 3″ ring binders, of manual test cases into WinRunner. There were 5 or 6 application silos with some shared things for login, etc. It was the ‘shared things’ that made it a framework. [...]

Page Object Contest #1: TimelineJS

Every two weeks I’ll be coming up with a dastardly bit of web automation and running a contest to see how others solve the problem. The chosen task will not be around what I am automating for work right now so this is not “Please do Adam’s work for him”. Though I do hope that [...]

Screenshots and Artifacts

Screenshots can be a useful tool in debugging broken scripts as they will show you when a spinner is stuck spinning or a bit of ’3rd party crap’ isn’t downloading properly. Both Py.Saunter and Saunter.PHP have some helper methods in their TestCase class to capture these. Py.Saunter self.take_named_screenshot(’some name’) self.take_numbered_screenshot() SaunterPHP $this->take_named_screenshot(’some name’); $this->take_numbered_screenshot(); Some [...]

Custom Firefox Profiles in Saunter

One of the things that you can do with Firefox that you can’t do with other browsers [or at least not as nicely...] is do a run using a profile that has custom settings already in place (cookies, extensions, local storage, etc.). A couple people have asked for it, and someone then someone paid for [...]

Downloading files in Py.Saunter

For years my stock answer for the question of how to download files from the browser has been “don’t do it, but if you really, really must then at least don’t try and use the browser” and I’ve left it at that. Well today I sat down to actually write the code to do it. [...]

Nesting setup and teardown

Yesterday during my Office Hours I chatted with Eric Jacobson about a number of things, but one of them was about how to avoid having to login/logout every single time a test method executes. I normally do login every time for isolation of execution, but we followed the thought process through. The way to handle [...]

Get Clarity around your Automation

I’m trying [another] new thing around the Office Hours idea that seems to be creeping into my twitter feed more-and-more. My spin on this is that I have created an account on Clarity. If you have a question about automation and want me to chat with me about it without going through the whole contract [...]

Office hours at STARCANADA

I’ll not be officially attending STARCANADA next week, but it is too close to my house to ignore it completely. So taking a page from the ThoughtWorks playbook of a couple years ago I’m going to host office hours ‘around’ the conference. On Wednesday, April 10, 2013 I will be available in 45 minute blocks [...]

PhantomJS/GhostDriver support arrives in Saunter

I’ll admit right up front that I don’t really understand the point of doing browser automation in a browser-that-doesn’t-have-a-browser. Especially since its kinda the point to light up browsers that your customers actually use. Yes, I know it is ridiculously fast. And yes, I understand the spooky WebKit monoculture that is starting to form, but [...]