【发布时间】:2013-12-01 18:44:58
【问题描述】:
我正在尝试将一个文件加载到 watir 中,该文件将包含我需要用于跨站点的许多不同功能的所有常量。每当我这样做时,它总是说浏览器未定义。
所有的常量都以 browser.xxxxx 开头。我环顾四周,似乎无论如何都无法加载包含您可能需要的所有变量的单个文件,任何人都可以确认这是绝对不可能的吗?
谢谢
【问题讨论】:
标签: ruby testing shared-libraries constants watir
我正在尝试将一个文件加载到 watir 中,该文件将包含我需要用于跨站点的许多不同功能的所有常量。每当我这样做时,它总是说浏览器未定义。
所有的常量都以 browser.xxxxx 开头。我环顾四周,似乎无论如何都无法加载包含您可能需要的所有变量的单个文件,任何人都可以确认这是绝对不可能的吗?
谢谢
【问题讨论】:
标签: ruby testing shared-libraries constants watir
您可以加载包含变量的文件。但是,您需要对方法进行一些更改:
browser.xxxx 无效,因为您不能在变量名称中包含句点(.)。您需要一个不同的变量名,例如,改用下划线 - browser_xxxx。browser_xxxx 这样的变量是局部变量。它只在它声明的文件中可用。如果你想在另一个文件中使用它,你应该使用一个常量,例如BROWSER_URL,或者创建一个模块以便你可以做Browser.url。使用常量的示例
假设你的 constants.rb 文件包含:
BROWSER_URL = 'www.google.ca'
然后你的其他脚本文件(假设在同一个文件夹中)可以:
require_relative 'constants'
require 'watir'
browser = Watir::Browser.new
browser.goto BROWSER_URL
模块使用示例
您可以在您的 constants.rb 文件中创建一个包含各种常量的模块:
module Browser
@url = 'www.google.ca'
class << self
attr_reader :url
end
end
然后你的其他脚本文件(假设在同一个文件夹中)可以:
require_relative 'constants'
require 'watir'
browser = Watir::Browser.new
browser.goto Browser.url
【讨论】: