0

“URL.txt”文件包含“www.google.com”。puts 显示控制台中的值。但启动 IE 后,在地址栏中显示“[http:///]”并且程序停止运行。这是我的 Watir 代码。

require 'rubygems'
require 'watir'
File.open("URL.txt", "r").each_line do |line|
  puts line
end
a = Watir::Browser.new
a.goto '#{line}'

我做错什么了吗?

4

1 回答 1

2

你要求 IE 去 url #{line}。如果您手动执行此操作,IE 会自动转到http:///.

你有2个问题:

  1. 当你这样做'#{line}'时,单引号意味着没有字符串插值 - 即你得到你所看到的。要进行字符串插值,您需要双引号 - "#{line}"。但是,在这种情况下,您可以简单地执行line(即 line 已经是一个字符串)。
  2. 假设您修复了问题 1,下一个问题line是未定义的a.goto "#{line}". 您只在 File.open 块中定义了它。当您到达a.goto.

假设脚本旨在访问文件中的每个 url,您可能打算这样做:

require 'rubygems'
require 'watir'
File.open("URL.txt", "r").each_line do |line|
  puts line
  a = Watir::Browser.new
  a.goto line
end

或者,如果您要使用相同的浏览器访问每个页面:

require 'rubygems'
require 'watir'
a = Watir::Browser.new
File.open("URL.txt", "r").each_line do |line|
  puts line
  a.goto line
end
于 2013-11-13T19:38:29.313 回答