why not just create a class and pass the instance of the browser to that
class or something like that its been a while since i have written ruby

###Somewhere
Before do
  @browser = Watir::Browser.new :firefox
end

###login.rb
class Login
  def initialize(browser)
    @browser = browser
  end

  def open_browser_at(destination="www.google.com")
    @browser.goto destination
  end
end

### Usage
login = Login.new(@browser)
login.open_browser_at




On Wed, Dec 6, 2017 at 4:04 PM, Jeff Fagot <[email protected]> wrote:

> Hello all,
>
> Main question == How to share the same browser instance across all my
> modules?
> Sub question 1 == What do you recommend between using hook.rb vs ruby
> module to instantiate a new Browser?
> Sub question 2 == Where do you store your modules?
>
>
> I explain: (I am using Cucumber+Watir)
> 1) Before, when it was fine:
>  I first had one stepdef file with one module containing all my methods
> (including creation of new browser...).
> Now with everything I am reading and learning, I am trying to separate
> things in a more organized / re-usable / maintainable way, so:
>
> 2) After, where I am stuck:
>  I created myself both the "envr,rb" && a new Module "Login_module" files
> (I also tried within hook.rb) to create my instance of @browser, then it
> seems to only be recognized to my stepdef but not by the other module...??
>
> I am trying to make things right from start, therefore as I read about it,
> I am running away from using global variables at all.
>
>
> *Files overview:*
>
> *** ENVR.RB ***
> browser = Watir::Browser.new :firefox
>
> Before do
>   @b = browser
>   # @b = Watir::Browser.new :chrome
>   # @b = Watir::Browser.new :ie
> end
> ***********************************************
>
>
> *** STEPDEF.RB ***
> Given (/^I am navigating to the testsite$/) do
>   Login_module.open_browser_at   *#### Here if instead I pass
> directly @b.goto "www.google.com <http://www.google.com>"  => it works ###*
> end
> ******************************************************
>
> *** LOGIN.RB ***
> module Login_module
> def self.open_browser_at
>  @b.goto "www.google.com"
> end
> end
> ******************************************************
> I would appreciate any help in sorting things out.
>
> Thanks in advance.
> Jeff Fagot
>
> --
> --
> Before posting, please read http://watir.com/support. 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.
>

-- 
-- 
Before posting, please read http://watir.com/support. 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.

Reply via email to