ruby - 不同 ruby​​ 文件中的可变范围

标签 ruby rubygems watir

我正在自动创建一个具有不同功能页面的网站。 我正在为每个功能制作不同的模块。 问题是我有一个登录页面 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

关于ruby - 不同 ruby​​ 文件中的可变范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3598339/

相关文章:

ruby - 无法加载此类文件——1.9.3 上的 osx/cocoa 错误

ruby - 使用 If/Else/Esif 提示循环

ruby - 开始使用 Ruby、Watir 和 Ruby Mine?

rspec - watir-rspec : watir or watir-webdriver?

ruby - MiniTest - 仅重新运行失败的测试

ruby - RSPEC Let 与创建昂贵对象的实例

ruby-on-rails - 如何在 win 7 上安装 caldecott?

ruby - Octopress 包含代码崩溃

docker - 指定 bundle 软件的版本

webdriver - Watir-webdriver 黑色截图