require 'capybara/dsl' require 'capybara-webkit' # Registro il Driver Crome Capybara.register_driver :selenium_chrome do |app| Capybara::Selenium::Driver.new(app, :browser => :chrome) end Capybara.default_driver = :selenium_chrome Capybara.app_host = "https://exau.casc.eu/ca/web/pages/welcome.iface" module Test class Casc include Capybara::DSL def set_session(id) Capybara.instance_variable_set("@session_pool", { "#{Capybara.current_driver}#{Capybara.app.object_id}" => $sessions[id] }) end def in_session(id, &block) $sessions ||= {} $sessions[:default] ||= Capybara.current_session $sessions[id] ||= Capybara::Session.new(Capybara.current_driver, Capybara.app) set_session(id) yield set_session(:default) end def home() $sessions ||= {} a=Thread.new do $sessions["uno"] = Capybara::Session.new(Capybara.current_driver, Capybara.app) Capybara.instance_variable_set("@session_pool", { "#{Capybara.current_driver}#{Capybara.app.object_id}" => $sessions["uno"] }) $sessions["uno"].visit('/') $sessions["uno"].fill_in "username", :with => "michele.boscolo@eni.com" end b=Thread.new do $sessions["due"] = Capybara::Session.new(Capybara.current_driver, Capybara.app) Capybara.instance_variable_set("@session_pool", { "#{Capybara.current_driver}#{Capybara.app.object_id}" => $sessions["due"] }) $sessions["due"].visit('/') $sessions["due"].fill_in "username", :with => "michele.boscolo@eni.com" end # Attendo che i Thread finiscano a.join(20) b.join(20) end end end spider = Test::Casc.new spider.home()