I have been receiving training in automation since the somewhere around fall 1998 / spring 1999 and been teaching formally in some capacity for about 5. Here is a list of things I think someone should consider when looking at training (and how I decide whether I am interested in it). And in a practice-what-you-preach [...]
Element 34
Category Archives: blog
Python, Postgres and some Monkeypatching (just for kicks)
Greg Wilson has ranted a number of times about how hard package management is both from a teaching perspective and a get-the-blasted-thing-wired-properly-on-a-given-machine one. I had more or less written this rant off as it had never happened to me — until now. Enter Postgres. Part of doing effective automation is verifying what you see in [...]
WebDriver and Meta Tags
Meta elements are the HTML or XHTML <meta … > element used to provide structured metadata about a Web page. – Wikipedia Often functional scripts using Selenium worry only about the flows of an app, but sometimes the non-interaction parts are just as important — or more so. One such example is the meta tags [...]
Introducing PHPWebDriver
As I mentioned in a survey of the php and selenium landscape I hinted that I was going to likely create my own PHP WebDriver implementation. And sorta have. PHPWebDriver is a fork of the Facebook’s php-webdriver project with a few couple differences which have moved it from the Github definition of ‘fork’ to the [...]
Sending characters at an element with WebDriver
One of the downsides of a Selenium binding that implements the wire protocol literally is, well, it implements the wire protocol literally. Take for instance sending text to an element using the Facebook bindings. $e1 = $this->session->element("id", "some id"); $e1->value(array("value" => array("pumpkins"))); Yuck. Nested arrays? In user-space? Well, it should be in the Page Object, [...]
WebDriver and Cookies
WebDriver somewhat deviates away from the ‘only what the user can do’ model when it comes to cookies. Which is amazing since it lets us do a bunch of things outside of the browser (like short-circuiting authentication) since browsers are slow. According to the JSON Wire Protocol there are three different ways of interacting with [...]
How to hire a Selenium scripter
Part of my sales funnel input is monitoring twitter for ‘Selenium’ and so I see a lot of job adverts. And I’ve come to realize that there is a lot bad hiring out there. This post isn’t aimed at those trying to get hired, but those who are trying to find them. Advertising It is [...]
Not losing the trees for the forest
One problem with large scale automation is that legitimate failures will start to linger about. Whether this is a symptom of the organization not actually caring about the results is a different problem entirely, but one that can be solved at the script level is to make sure that known failures don’t hide new issues. [...]
Another example of burying Element logic in the Page Object
Here is a another example of a custom Element similar in concept to the one used in but this is a number. Only this time it deals with something far more devious; the search box with a disappearing default string that was mentioned in even framework opinions should be weakly held. The actual implementation of [...]
Even framework opinions should be weakly held
I bill Saunter as an opinionated framework. That is, there is really only one right place for things and it behaves in certain ways. One of these opinions is that the element being interacted with should have focus, which in Se-RC will move it into the visible part of the browser. This is extremely useful [...]
