我是 Ruby 新手,所以这可能是一个非常愚蠢的问题。但是我们在现有的 Ruby 安装 PC 上运行此代码。
def usr_OpenURL(strURL, strBrowserType)
if strBrowserType == "IE"
# Open Browser at the specified URL and Maximise
browser = Watir::Browser.start(strURL)
browser.waitForIE
browser.bring_to_front
browser.maximize
sleep($nSleepTime)
elsif strBrowserType == "Chrome"
browser = Watir::Browser.new :chrome
browser.goto strURL
sleep($nSleepTime)
else
puts "No Known Browser is Declared"
end
return browser
end
但是在我的电脑上安装相同版本的 Ruby 并运行代码会返回错误:
undefined method 'start' for Watir::Browser:Class (NoMethodError).
所以我用 irb 玩了一下。
如果我做:
require "Watir"
browser = Watir::Browser.start("http://www.google.com")
我得到错误,但如果我这样做:
require "Watir"
browser = Watir::Browser.new
browser = Watir::Browser.start("http://www.google.com")
然后就可以了。它会按预期在该 url 处打开一个新的浏览器窗口。
比较 PC 我可以看到 watir 的不同版本,并且安装了 watir-webdriver gem - 所以不确定版本之间是否有变化。
写这个 ruby 代码的人已经不在了——所以我不能问他们为什么不为 IE 做一个 .new 和 Goto。
任何想法将不胜感激:) 谢谢!
更新:我在 watir-classic 3.2.0 gem 中找到了这个。想想也许这就是罪魁祸首。
Watir::Browser 现在是一个类而不是一个模块 - 如果你正在修补猴子,请小心。