1

我正在研究一种共享 Ruby 程序的方法。这是我的测试代码。

require 'rubygems'
require 'watir-webdriver'
require 'headless'
require 'google_drive'

@browsertype =""
@name =""
@champsname = ""
@date = DateTime.now

file = File.exists?("temp.txt")
if file == true
   input = IO.read("temp.txt")
   input_hash = Hash[*input.gsub(/"/,"").split(/\s*[\n=]\s*/)]
     browsertype = input_hash.shift
     name  = input_hash.shift
     champsname  = input_hash.shift


  @browsertype = browsertype[1]
  @name  = name[1]
  @champ = champsname[1]

end
if file == false
f = File.new("temp.txt", "w")

  # processing
    puts "What browser will you be using? "
      browsertype = gets
      f.write("browser = :")
      f.write(@browsertype)
    puts  "What is your name? "
     name = gets
       f.write("name = ")
       f.write(@name)
     puts "what is your champs name"
      champsname = gets
       f.write("champion = ")
       f.write(@champsname)


     @browsertype = browsertype
     @name  = name
     @champ = champsname

   end
     puts @browsertype
     puts @name
     puts @champ
     puts @date

#@b = "Watir::Browser.new :"+@browsertype

 agent = Watir::Browser.new
 @b = agent+@browsertype

#b = @b

#b.goto 'https://docs.google.com/spreadsheet/ccc?key=0AncPM9_7wL02dHVaSWg5eklfYW5jdTE3NGtJSGJPb3c'

我用这个问题作为参考来制作 var out of files、Variables magic 和 read from file。我希望我的朋友能够通过使用 orca从我的 Ruby 应用程序构建 Windows 可执行文件来使用成品?. 我一直遇到的问题是 Watir 在您使用时默认运行 Firefox

agent = Watir::Browser.new

但不是每个人都使用 Firefox,所以这就是我在文件中创建浏览器类型的原因。但是当我使用

@b = "Watir::Browser.new :"+@browsertype

我收到一条错误消息,提示+string无效,而符号也一样。有人对我如何拥有用户定义的浏览器类型有任何建议吗?

4

2 回答 2

1

您应该将浏览器类型传递给浏览器的初始化。:

@b = Watir::Browser.new @browsertype

这假设@browsertype类似于'firefox'.

于 2013-02-11T17:08:37.057 回答
0

Watir 接受一小部分特定的“符号”,例如浏览器类型的 :chrome。如果接受来自用户的输入,我将使用 case 语句根据他们的输入设置一个包含特定符号(:firefox、:chrome 等)的变量,并在用户不输入值时向用户提供反馈符合您的预期。

或者,您也可以在字符串上使用 .to_sym 将其转换为符号.. 所以

@browser_type = "chrome"
@b = Watir::Browser.new @browser_type.to_sym
于 2016-08-18T23:08:55.123 回答