He isn't referring to a class for browser creation, but creating a page object class for using the browser, instead of using a module.
Classes and modules are very similar in Ruby, but classes can be instantiated with instance variables, like a specific instance of a Browser object. Also, I typically recommend people do not use Cucumber unless they are actively doing Behavior Driven Development with a company. using RSpec and spec_helper are overall much more straightforward. On Wednesday, December 6, 2017 at 11:27:53 PM UTC+1, Jeff Fagot wrote: > > Thanks Oscar for your input. > I was just trying to learn about CLASS today and see how I could implement > Class Objects...I guess you will get me started on it => I will try it out > tonight > > But isn't Browser already a default Class Object of Watir? > By following blogs, posts...I do not recall seeing others creating a > specific class for the Browser creation? > > Jeff F > > On Wednesday, December 6, 2017 at 5:04:34 PM UTC-5, Oscar.Rieken wrote: >> >> 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.
