在不同的红宝石文件中的变量范围

在不同的红宝石文件中的变量范围

问题描述:

我正在自动完成具有不同功能页面的网站。 我正在为每个功能制作不同的模块。 问题是,我有一个登录页面Login.rb 具有下面的代码: -在不同的红宝石文件中的变量范围

$IE = Watir::IE.new_process 

module Login 

    def Login.login(url) 
    $IE.goto("url") 
    sleep (4) 
    $IE.maximize 
    #$IE.span(:class =>'menuLink', :text =>'Image').click 
    end 
end 

我需要访问$ IE变量来我的其他模块的方法。 问题在于其他模块在不同的.rb文件中没有使用此变量。 帮助我如何声明这一点,以便我可以在所有模块中将它用于不同的文件。

全局变量应在所有模块和所有文件中可用。你可以把这个全局变量放在一个名为(例如)common.rb的文件中,并在你的所有脚本中要求或加载该文件。

但是您不需要使用全局变量。您可以轻松做到这样的事情,并将其加载到您需要的每个脚本文件中。

module Browser 
    def self.ie 
    @ie ||= Watir::IE.new_process 
    end 
end