ruby
1require 'selenium-webdriver' 2require 'parallel' 3 4Parallel.each(url_list, in_threads: 4) do |row| 5 @driver = Selenium::WebDriver.for :chrome 6 7 @driver.navigate.to(row) 8 処理 9end
このように実装すると4つのブラウザが立ち上がって、それぞれ別のURLにアクセスするのですが、1つ目の処理を終えるとそれぞれブラウザが閉じてしまい、以下のエラーが表示されます。
C:/Ruby23/lib/ruby/2.3.0/net/protocol.rb:158:in `wait_readable': An operation was attempted on something that is not a socket. (Errno::ENOTSOCK) from C:/Ruby23/lib/ruby/2.3.0/net/protocol.rb:158:in `rbuf_fill' from C:/Ruby23/lib/ruby/2.3.0/net/protocol.rb:136:in `readuntil' from C:/Ruby23/lib/ruby/2.3.0/net/protocol.rb:146:in `readline' from C:/Ruby23/lib/ruby/2.3.0/net/http/response.rb:40:in `read_status_line' from C:/Ruby23/lib/ruby/2.3.0/net/http/response.rb:29:in `read_new' from C:/Ruby23/lib/ruby/2.3.0/net/http.rb:1437:in `block in transport_request' from C:/Ruby23/lib/ruby/2.3.0/net/http.rb:1434:in `catch' from C:/Ruby23/lib/ruby/2.3.0/net/http.rb:1434:in `transport_request' from C:/Ruby23/lib/ruby/2.3.0/net/http.rb:1407:in `request' from C:/Ruby23/lib/ruby/2.3.0/net/http.rb:1400:in `block in request' from C:/Ruby23/lib/ruby/2.3.0/net/http.rb:853:in `start' from C:/Ruby23/lib/ruby/2.3.0/net/http.rb:1398:in `request' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/http/default.rb:124:in `response_for' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/http/default.rb:78:in `request' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/http/common.rb:61:in `call' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/bridge.rb:678:in `raw_execute' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/bridge.rb:656:in `execute' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/remote/bridge.rb:339:in `execute_script' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.4.0/lib/selenium/webdriver/common/driver.rb:232:in `execute_script' from C:/ruby_study/hoiku_db/hoiku_db.rb:147:in `rescue in block in <main>' from C:/ruby_study/hoiku_db/hoiku_db.rb:110:in `block in <main>' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/parallel-1.11.2/lib/parallel.rb:486:in `call_with_index' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/parallel-1.11.2/lib/parallel.rb:342:in `block (2 levels) in work_in_threads' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/parallel-1.11.2/lib/parallel.rb:495:in `with_instrumentation' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/parallel-1.11.2/lib/parallel.rb:341:in `block in work_in_threads' from C:/Ruby23/lib/ruby/gems/2.3.0/gems/parallel-1.11.2/lib/parallel.rb:206:in `block (2 levels) in in_threads'
解決策はありますでしょうか?
あなたの回答
tips
プレビュー