Abrir vários threads com o watir-webdriver resulta no erro 'Conexão recusada'
Eu tenho este exemplo simples:
require 'watir-webdriver'
arr = []
sites = ,[
"www.google.com",
"www.bbc.com",
"www.cnn.com",
"www.gmail.com"
]
sites.each do |site|
arr << Thread.new {
b = Watir::Browser.new :chrome
b.goto site
puts b.url
b.close
}
end
arr.each {|t| t.join}
Toda vez que executo esse script, recebo
ruby/2.1.0/net/http.rb:879:in `initialize': Connection refused - connect(2) for "127.0.0.1" port 9517 (Errno::ECONNREFUSED)
Ou um dos navegadores fecha inesperadamente em pelo menos um dos threads.
por outro lado, se eu definirsleep 2
no final de cada ciclo de loop, tudo corre sem problemas! Alguma idéia do porquê disso?
Deve ser algo relacionado à compreensão de como os threads funcionam ...