I am making some acceptance tests for the LevenAls website, using plain text stories from David Chelimsky together with the Selenium runner from Kerry Buckley
Story: Selenium clicking a label
As a developer
I wanted to make acceptence tests
So I installed Cucumber and Selenium
Scenario: Writing clean tests
When I wanted to make the stories as clean as possible
And I wanted to click a rails generated radiobutton
Then the story became ugly
And it had lines like 'the user clicks a customer_gender_m button'
Scenario: I made a step for labels, getting the text
When I wanted to get rid of it
And I couldn't find an easy answer
And I spent the better part of my evening googling it
Then I made a post on the Selenium forum
And asked for advice
Scenario: I found a solution myself
When I was sitting in the train
And I was trying all kinds of solutions
Then I stumbled upon the solution
And I was overjoyed
And it was: $selenium.click("//label[text()='#{label}']")
So here is the entire step:
When "the user clicks on a $element labelled $label" do |element, label| $selenium.click "//label[text()='#{label}']" end