Saturday, July 3, 2010

Watir: Live Scripting Example: Live scripting example in watir

You can learn more.....

require 'watir'
require 'test/unit'
require 'script_runner'
include Watir

class YatraFlights < Test::Unit::TestCase
 script_runner = ScriptRunner.new("C:","C:","Yatra_Flights","",4,4,false)

   def test_01_Homepage
    $ie = IE.new
    $ie.goto("http://www.yatra.com/")
    $ie.maximize()
    $ie.bring_to_front()
    $ie.maximize()
    assert($ie.text_field(:name ,"ddate").exists?)
        assert($ie.link(:text,"Hotels").exists?)
    #~ assert($ie.contains_text("Book your Trip!"))
  end
 
  def test_02_Flight_Book_Page
    $ie.maximize()
     x=(Date.today+(25)).strftime('%d/%m/%Y')
      y=(Date.today+(28)).strftime('%d/%m/%Y')
      $ie.radio(:name,"type","O").set
  

$ie.selectBox( :name ,"origin").select("Bangalore") 
$ie.selectBox( :name ,"destination").select("Mumbai")
        $ie.text_field(:name,'ddate').value=x
       $ie.button(:id,'flightsonlybtn').click
       $ie.maximize()
       $ie.bring_to_front()
     $ie.maximize()
      #~ assert($ie.image(:src,/selectDepart.gif/).exists?)
       assert($ie.contains_text("Selection Summary"))
      
       assert($ie.image(:src,/selectDepart.gif/).exists?)
    end


  def test_03_Flight_Booking_Results_Page
    #~ $ie.image(:src,/selectDepart.gif/).click
    $ie.image(:src,/selectDepart.gif/).click
    sleep 5
    assert($ie.contains_text("Total Travel Price"))
   assert($ie.button(:value,/Continue/).exists?)
  
  end

 def test_04_Flight_Review_Page  #Yatra Flight Passenger Page
   #~ $ie.div(:id,'contBooking').button(:name,'submit').click 
  
   $ie.button(:value,/Continue/).click
   #~ assert($ie.checkbox(:name,'ch1').exists?)
   assert($ie.contains_text(/Review Details/))
      assert($ie.contains_text(/Pricing Details/))
      assert($ie.button(:alt,/Continue Booking/).exists?)
 end

 def test_05_Flight_Passenger_Page
    $ie.radio(:name,/barclay_radio/).click
    $ie.checkbox(:name,'ch1').set
    $ie.checkbox(:name,'ch3').set
$ie.button(:alt,/Continue Booking/).click
     assert($ie.text_field(:name,'contact_first_name').exists?)
    assert($ie.text_field(:name,'password').exists?)
 end

Wednesday, June 9, 2010

Watir: Watir Scripting

 Ruby Database

equire 'win32ole'
         class SqlServer 
         # This class manages database connection and queries
        attr_accessor :connection, :data, :fields
         attr_writer :username, :password
               
        def initialize(sclient,script,pagecode,pagenum,host='', username='', password='',database='')
             puts "in init"
             #~ @dbtype=readINI("C:/config/DB.ini","DBtype")
                                 
                       @connection = nil
            @@sclient=sclient
            @@script=script
            @@pagecode=pagecode
            @@pagenum=pagenum
            @data = nil
           

      @timeout=60
      @sclient2=sclient

     puts "in init"
     
      end
     
        #end
           
        def open()
            # Open ADO connection to the SQL Server database
            connection_string =  "Provider=SQLOLEDB.1;"
            connection_string << "Persist Security Info=False;"
            connection_string << "User ID=#{$username};"
            connection_string << "password=#{$password};"
            connection_string << "Initial Catalog=#{$database};"
            connection_string << "Data Source=#{$host};"
            connection_string <<"Connect Timeout=#{@timeout};"
            connection_string << "Network Library=dbmssocn"
            puts connection_string
            @connection = WIN32OLE.new('ADODB.Connection')
           
            #~ if @dbtype="mssql"
            @connection.Open(connection_string)
            #~ else
              #~ $dbh = Mysql.real_connect( @host,@username,@password ,@database)
              #~ end
          end
         
          def query(sql)
            # Create an instance of an ADO Recordset
            recordset = WIN32OLE.new('ADODB.Recordset')
            #puts @connection
            # Open the recordset, using an SQL statement and the
            # existing ADO connection
            recordset.Open(sql, @connection)
            # Create and populate an array of field names
            @fields = []

            recordset.Fields.each do |field|
                @fields << field.Name
            end
            begin
                # Move to the first record/row, if any exist
                recordset.MoveFirst
                # Grab all records
                @data = recordset.GetRows
            rescue
                @data = []
           
            end
            #~ recordset.Close
            # An ADO Recordset's GetRows method returns an array
            # of columns, so we'll use the transpose method to
            # convert it to an array of rows
            @data = @data.transpose
        end
   
        def close
          #~ recordset.Close
            @connection.Close
        end
   
    end