Tôi có một số lớp được viết để chi phối cách tôi muốn xử lý một số trang web, với các phương thức tương tự trong cả hai (ví dụ: đăng nhập, làm mới). Mỗi lớp sẽ mở ra cá thể trình duyệt WATIR của riêng nó.Chủ đề Ruby với Watir
class Site1
def initialize
@ie = Watir::Browser.new
end
def login
@ie.goto "www.blah.com"
end
end
một mẫu mã trong chính không có chủ đề là như sau
require 'watir'
require_relative 'site1'
agents = []
agents << Site1.new
agents.each{ |agent|
agent.login
}
này hoạt động tốt, nhưng doesnt chuyển sang đại lý tiếp theo cho đến khi hiện tại đã hoàn thành việc đăng nhập. Tôi muốn để kết hợp đa luồng để xử lý điều này, nhưng không thể dường như làm cho nó hoạt động.
require 'watir'
require_relative 'site1'
agents = []; threads = []
agents << Site1.new
agents.each{ |agent|
threads << Thread.new(agent){ agent.login }
}
threads.each { |t| t.join }
điều này cho tôi lỗi: không xác định thuộc tính hoặc phương pháp: navigate
. Mã lỗi HRESULT: 0x8001010e. Ứng dụng này được gọi là một giao diện được sắp xếp theo một chủ đề khác.
có ai biết cách sửa lỗi này hoặc cách triển khai chức năng tương tự không?
Dường như đó là lỗi trong watir-classic hoặc một trong các thư viện mà nó sử dụng. Vấn đề không xảy ra khi sử dụng watir-wedriver với firefox. –
cảm ơn bạn, có vẻ như bạn đúng. hoạt động tốt với watir-webdriver vì vậy tôi đoán nó chỉ là một lỗi với watir-classic. – cubesnyc