2015-04-01 2 views
0

Как я могу управлять экземпляром Watir-Webdriver из другого файла? Например, в файле webdriver.rb У меня естьКонтрольный экземпляр Watir-Webdriver из другого файла

require 'watir-webdriver' 
class Crawler 
    attr_accessor :browser 
    def initialize 
     self.browser = Watir::Browser.new 
    end 

    def goto_mypage 
     browser.goto("http://www.mypage.com") 
    end 

    def kill 
     browser.close 
    end 
    end 

a = Crawler.new 

Теперь как бы я получить доступ к из файла «another_file.rb» с содержанием, как

a.goto("htttp://www.another_page.com") 
a.goto_mypage 

Я попытался сделать требуя ' ./webdriver.rb 'в another_file.rb. И сделать класс Crawler частью модуля и в том числе. Получение доступа к методам между файлами не является проблемой - получение доступа к экземпляру webdriver.

Я попытался установить переменную экземпляра @a = a в webdriver.rb, а затем получить доступ к @a из another_file.rb.

Я думал, что это будет просто, но он меня смутил.

ответ

0

Вы можете получить дополнительную помощь, если включаете фактические результаты. Вы получаете ошибку класса nil?

Есть ли причина, по которой у вас не может быть a = Crawler.new в another_file.rb, а затем просто обратитесь к ней там?

+0

Спасибо. Да, я получаю ошибку класса nil 'NoMethodError - undefined method 'goto' для nil: NilClass:' при попытке управления a из another_file.rb Ошибка относится, скажем, к методу goto_mypage в webdriver. гь. Я не могу поместить 'a = Crawler.new' во второй файл, потому что большая часть работы, которую выполняет a, определяется в файле webdriver.rb. Он должен сидеть и наблюдать изменения на веб-странице. Очень редко - в зависимости от того, вызван ли код в файле another_file.rb - мне нужно, чтобы проверить другую страницу и вернуться к исходной странице, которую она контролирует. – sarkon

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