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.