在不同的红宝石文件中的变量范围
问题描述:
我正在自动完成具有不同功能页面的网站。 我正在为每个功能制作不同的模块。 问题是,我有一个登录页面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