# Scripting Web Tests

with Watir and Ruby

Workbook / Solutions / 4. Verifying Behavior

## Sample Solution for Lab 4. Verifying Behavior

Lab 4. Verifying Behavior

After adding validations, your script for the add book to cart scenario might look something like this.

    require 'watir'
    require 'spec'

    b = Watir::IE.start('http://localhost:3000/store/empty_cart')
    b.link(:href, 'http://localhost:3000/store/add_to_cart/4').click
    b.div(:id, 'banner').text.should == 'Your Pragmatic Cart'
    b.table(:index, 1)[3][2].text.should == 'Pragmatic Project Automation'
    b.cell(:id, 'totalcell').text.should == '$29.95'

After adding validations, your script for the purchase books scenario might look something like this.

    require 'watir'
    require 'spec'

    b = Watir::IE.start('http://localhost:3000/store/empty_cart')
    b.link(:href, 'http://localhost:3000/store/add_to_cart/4').click
    b.link(:text, 'Continue shopping').click
    b.link(:href, 'http://localhost:3000/store/add_to_cart/12').click
    b.div(:id, 'banner').text.should == 'Your Pragmatic Cart'
    b.table(:index, 1)[3][2].text.should == 'Pragmatic Project Automation'
    b.table(:index, 1)[3][1].text.should == '1'
    b.table(:index, 1)[4][2].text.should == 'Pragmatic Version Control'
    b.table(:index, 1)[3][1].text.should == '1'
    b.cell(:id, 'totalcell').text.should == '$59.90'
    b.link(:text, 'Checkout').click
    b.div(:id, 'banner').text.should == 'Checkout'
    b.table(:index, 1)[3][2].text.should == 'Pragmatic Project Automation'
    b.table(:index, 1)[3][1].text.should == '1'
    b.table(:index, 1)[4][2].text.should == 'Pragmatic Version Control'
    b.table(:index, 1)[3][1].text.should == '1'
    b.cell(:id, 'totalcell').text.should == '$59.90'
    b.text_field(:id, 'order_name').set('Steven List')
    b.text_field(:id, 'order_email').set('doc@gmail.com')
    b.text_field(:id, 'order_address').set("1600 Pennsylvania Ave.\nWashington D.C.")
    b.select_list(:id, 'order_pay_type').select('Check')
    b.button(:name, 'commit').click
    b.div(:id, 'banner').text.should == 'Pragmatic Bookshelf'
    b.div(:id, 'notice').text.should == 'Thank you for your order.'