Showing posts from March, 2008

Gospel Goes Green

CBC Radio, The Current, 24 March 2008 featured an interview with Rev. Richard Cizik, Vice President for Government Policy with the National Association of Evangelicals, the most powerful religious organization in the United States with over 30 million members. He is encouraging his flock of 30 million to "proselytize in the fight against climate change as well as the battle to save souls."

On a trip last August, he along with other evangelicals and scientists went to Alaska to see the effects of climate change. Asked about the impact of the trip, he said it was "an extraordinary experience for me personally as well as for all evangelicals."

The group saw first hand the impact of climate change, habitat destruction, and species extinction. Stressing the need for cooperation between the religious and scientific communities, Cizik recounted "...all these things that we together believe threaten the planet."

"It's one of the most important conversatio…

Selenium IDE Test Tips

Here are a few things to bear in mind when creating Selenium IDE tests.

Setting and Getting Variables

store | 10 | x

This obviously sets x=10. There are a couple of ways to reference it: ${x} or storedVars['x']. They're not the same.

The first, ${x}, is from Prototype. Its a shortcut and returns a copy of storedVars['x'], it doesn't actually point to the real value. The second, storedVars['x'] directly references the array of Selenium's stored user variables. I recommend using storedVars['x'] and not ${x} (even though it's shorter).

You can't assign anything to${x}. Within a single Selenium command, if you modify storedVars['x'], the value of ${x} won't get updated until the next command. Stick with storedVars and you'll be ok.

When you want to use a previously stored variable as an argument to a subsequent command, use the "javascript{...}" notation. For example:

assertElementPresent | javascript{stor…

What I Don't Like About Google

As with all good things that must come to an end, the pure spartan simplicity that defined Google at the start has begun to cede ground to the ever-encroaching clutter.

Usability trouble comes in various guises but could be summed up in a word as "inconsistency". If I had a mantra for usability it would be "meet expectations". Which is impossible when your products set conflicting expectations. With all the additions, acquisitions, and new beta projects coming out of Google now we're starting to see the inevitable usability dragon rearing its ugly head.

It happens, for example, when you click on "My Account" in one application and it takes you to the app's dashboard, click it in another application and go to your Google account preferences. I don't want to have to remember that two identical-looking links in identical fonts in identical places on Google apps have completely different functionality.

Dear Google, please fix the inconsistency…

It snowed...

... a bit last night.

Selenium IDE Internals

When porting the original flowcontrol plugin for using goto and while loops in Selenium IDE (original Sideflow post) I found the following techniques useful for digging into the internals of Selenium IDE.

using getEval / storeEval

The functionality Selenium provides is great, but at times you may need to do something beyond the ordinary. One of the most useful commands in Selenium IDE for this is getEval. Get eval executes an arbitrary string of JavaScript code. If you've upgraded to the new Selenium IDE 1.0 Beta 1 you can also use the new "runScript" command.

getEval with alert

Most people will have tried this, I'm sure. Some say this is bad form, but I use this sort of thing all the time and it's usually the fastest way to get what I need for debugging.

|getEval | alert("simple is always better"); |
|getEval | alert("first command = "+testCase.commands[0].command); |
You'll want to remove these kinds of alerts once your test case is rea…