Use Browser Contexts for Thread Safety
mainFerrum is fully thread-safe. To manage multiple independent sessions within a single browser instance, use browser.contexts.create.
A Context acts like an incognito profile. You can create multiple pages within one context to share session data, or create multiple contexts to ensure complete isolation between threads. Always remember to call context.dispose to clean up the context resources.
browser = Ferrum::Browser.new
context = browser.contexts.create
t1 = Thread.new(context) do |c|
page = c.create_page
page.go_to("https://www.google.com/search?q=Ruby+headless+driver+for+Capybara")
page.screenshot(path: "t1.png")
end
t2 = Thread.new(context) do |c|
page = c.create_page
page.go_to("https://www.google.com/search?q=Ruby+static+typing")
page.screenshot(path: "t2.png")
end
t1.join
t2.join
context.dispose
browser.quit