6
私はいくつかのクラスを書いています。私はいくつかのWebサイトを扱いたいと思っています。両方の方法が同じです(ログイン、リフレッシュ)。各クラスは、独自のWATIRブラウザインスタンスを開きます。私は希望RubyスレッドとWatir
require 'watir'
require_relative 'site1'
agents = []
agents << Site1.new
agents.each{ |agent|
agent.login
}
これはうまく動作しますが、現在の1がログイン完了するまで次のエージェントに移動doesntのを次のように
class Site1
def initialize
@ie = Watir::Browser.new
end
def login
@ie.goto "www.blah.com"
end
end
いないスレッドを持つメインのコードのサンプルがあります。これを処理するマルチスレッドを組み込むことはできますが、動作させることはできません。
require 'watir'
require_relative 'site1'
agents = []; threads = []
agents << Site1.new
agents.each{ |agent|
threads << Thread.new(agent){ agent.login }
}
threads.each { |t| t.join }
これは私にエラーを通知します:不明なプロパティまたは方法:navigate
。 HRESULTエラーコード:0x8001010eこのアプリケーションは、別のスレッド用にマーシャリングされたインターフェイスを呼び出しました。
誰でもこれを解決する方法、または同様の機能を実装する方法を知っていますか?
watir-classicやそれが使用するライブラリのバグのようです。この問題は、firefoxでwatir-wedriverを使用しているときには発生しません。 –
ジャスティンに感謝、それはあなたのように見えます。 watir-webdriverとうまく動作するので、私はwatir-classicのバグだと思います。 – cubesnyc