2013-11-13 5 views
0

Файл «URL.txt» содержит «www.google.com». puts показывает значение в консоли. Но после запуска IE в адресной строке он отображает «[http: ///]» и программирует tarminates. Вот мой код Ватира.Получение «http ///» в адресной строке

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

Я делаю что-то неправильно?

ответ

2

Вы спрашиваете у IE, чтобы он отправил URL-адрес #{line}. Если вы сделаете это вручную, IE автоматически перейдет на http:///.

У вас есть 2 проблемы:

  1. Когда вы делаете '#{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 
+0

спасибо. Он работает сейчас! – Sakib

Смежные вопросы