There is no difference in functionality from a Hooks perspective. They both
work the same way, except that the in the second one you are getting access
to the Scenario details (object).
Actually, you can come both the *Before *hooks to achieve the same result:
Before do|scenario|
@browser = browser
ENV['HTTP_PROXY'] = ENV['http_proxy'] = nil
DataMagic.load_for_scenario(scenario)
@browser.window.maximize
@browser.driver.manage.timeouts.implicit_wait = 0
@browser.cookies.clear
@browser.driver.manage.window.maximize
PageObject.default_element_wait=(10)
PageObject.javascript_framework = :jquery
#Selenium::WebDriver.logger.level = :info
end #before scenario
On Friday, February 1, 2019 at 4:07:08 AM UTC-8, NaviHan wrote:
>
> Hi Lakshya
>
> Here is the hooks.rb used in our project..
>
> Eventhough the the browser is assigned to instance variable @browser we
> still get to see all the details you mentioned. So Im not quite getting the
> difference between the two Before hooks
>
> require 'rubygems'
> require 'page-object'
> require 'watir'
> require 'page-object/page_factory'
> require 'log4r'
> require 'cucumber'
> require 'selenium-webdriver'
> require 'fig_newton'
> require 'watir-screenshot-stitch'
> require 'mini_magick'
>
> args = ['--allow-running-insecure-content']
> browser = Watir::Browser.new :chrome, options: {args: args}
> $code_retry = 30
>
> Before do
> @browser = browser
> end
>
>
> Before do|scenario|
> ENV['HTTP_PROXY'] = ENV['http_proxy'] = nil
> DataMagic.load_for_scenario(scenario)
> @browser.window.maximize
> @browser.driver.manage.timeouts.implicit_wait = 0
> @browser.cookies.clear
> @browser.driver.manage.window.maximize
> PageObject.default_element_wait=(10)
> PageObject.javascript_framework = :jquery
> #Selenium::WebDriver.logger.level = :info
> end #before scenario
>
>
>
>
> # "after all"
> After do |scenario|
> @browser.execute_script("javascript:localStorage.clear();")
> @browser.cookies.clear
> if (scenario.passed?)
> puts 'Scenario Passed !'
> else
> puts 'Scenario Failed !'
> end
> end
>
>
>
> AfterStep('@screen') do
> filename = DateTime.now.strftime("%d%b%Y%H%M%S")
> @browser.screenshot.save
> ("C:/Users/lohit.kotian/Documents/Automation/screenshots-cucumber/#{filename}.png")
> #@browser.screenshot.save
> ("C:/Jenkins/workspace/screenshots-cucumber/#{filename}.png")
> end
>
>
> Around('@multipletimes') do |scenario, block|
> $counter = 0
> $total_times_to_run = 6
> while $counter < $total_times_to_run do
> block.call
> puts("Total times scripts were repeated = #$counter" )
> $counter +=1
> end
> end
>
>
> After do |scenario|
> take_screenshot(@browser, scenario)
> end
>
> at_exit do
> browser.close
> end
>
> # need to check this code for the full page screenshots as a part of the
> enhancement
>
> def take_screenshot(browser, scenario)
> time = Time.now.strftime("%Y-%m-%d_%H%M")
> opts = {:page_height_limit => 5000}
> if scenario.failed?
> scenario_name = scenario.name.gsub(/[^\w\-]/, ' ')
> screenshot_path = "#{scenario_name}" + "_failure_" + time
>
> @browser.screenshot.save_stitch("./screenshots/#{screenshot_path}.png",
> browser, opts)
> end
> end
>
>
>
>
>
> On Tuesday, 29 January 2019 16:47:10 UTC+11, NaviHan wrote:
>>
>> Hi all
>>
>> Im just looking for some good documentation which explains the usage of
>> blocks in hooks.rb
>>
>> For example "Before", "After" , "AfterStep" etc...
>>
>> Thanks in advance
>>
>
--
--
Before posting, please read
https://github.com/watir/watir_meta/wiki/Guidelines-for-Posting-to-Watir-General-Google-Group.
In short: search before you ask, be nice.
[email protected]
http://groups.google.com/group/watir-general
[email protected]
---
You received this message because you are subscribed to the Google Groups
"Watir General" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.