Testing complex sites
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") end1. 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# 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' buttonHere 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