Testing complex sites

Posted by Zhimin Zhan on November 19, 2009|
Comments

We are not living in a perfect world, some web sites are created without automated testing in mind. So we have some sites with complex javascripts, elements without IDs or duplicated IDs. .

Here is one, the test scripts generated from TestWise/Watir recorder won’t work.

  scenario "Site with complex JavaScripts: Recorded" do
    select_option("intFrom", "Brisbane")
    click_link_with_id("toSYD")
    select_option("intDepMonthYear", "Jan 2010")
    select_option("intDepDay", "Sun 03")
    select_option("intRetMonthYear", "Feb 2010")
    select_option("intRetDay", "Wed 03")
    select_option("intAdults", "2")
    click_button("Go")
  end

1. Line 3: click_link_with_id(“toSYD”) failed with error ‘Unable to locate element, using :id, “toSYD”’

Reason: a javascript window pops up as user enters text in destination text field, however that event is not fired when running the test scripts.

Solution: Click the image to bring up the javascript popup window manually.

   image(:id, “toBoxPlusSign”).click 

  1. Line 10: click_button(“Go”) had no effect

Reason: There are more than one button with caption ‘Go’ on the page





Solution: Click the specific button by using :index

    button(:text => "Go", :index => 2).click # click 2nd 'Go' button

Here is the complete test script:

  scenario "Site with complex JavaScripts:  Working version" do
    select_option("intFrom", "Brisbane")
    image(:id, "toBoxPlusSign").click # bring up the popup    
    click_link_with_id("toSYD")
    select_option("intDepMonthYear", "Jan 2010")
    select_option("intDepDay", "Sun 03")
    select_option("intRetMonthYear", "Feb 2010")
    select_option("intRetDay", "Wed 03")
    select_option("intAdults", "2")
    button(:text => "Go", :index => 2).click # click 2nd 'Go' button
  end

blog comments powered by Disqus