Search code examples
rubyproxywebdriverwatiruser-agent

How to insert two parameters into watir :: browser ( proxy and user-agent after Browser.new() )


I need to put proxy + user.agent in browser = Watir::Browser.new(here)

I have a code that calls a proxy parameter

u_proxy = File.readlines("proxy.txt").sample
real_proxy = u_proxy
server = ProxyChainRb::Server.new
generated_proxy = server.start(real_proxy)

proxy = {
http: generated_proxy,
ssl: generated_proxy
}

browser = Watir::Browser.new(:chrome, proxy: proxy)

and the code that calls the user agent parameter

driver = Webdriver::UserAgent.driver(:browser => :chrome,:agent => :random)
browser = Watir::Browser.new(driver)

They work separately, but how can they be combined into one whole?

Tried doing it with the class But I'm a beginner and I'm probably doing something wrong, because I open 3 browsers at once!

require 'watir'
require "proxifier/proxy"
require 'proxy_chain_rb'
require 'webdriver-user-agent'
driver = Webdriver::UserAgent.driver(:browser => :chrome,:agent => :random)
 
class NameClass
    def proxys
        u_proxy = File.readlines("proxy.txt").sample
        real_proxy        =   u_proxy
        server            =   ProxyChainRb::Server.new
        generated_proxy   =   server.start(real_proxy)
 
    proxy = {
        http: generated_proxy,
        ssl:  generated_proxy
     }  
        browser = Watir::Browser.new(:chrome, proxy: proxy)
    end
 
 
    def useragents
        browser = Watir::Browser.new(driver)
    end
end
 
q = NameClass.new
 
browser = Watir::Browser.new
begin q.proxys
    browser.goto("https://2ip.ru/")
    sleep(25)
end

Help me please


Solution

  • I think the Webdriver::UserAgent passes through any options it doesn't know about. I would try:

    driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :random, :proxy => proxy)
    browser = Watir::Browser.new(driver)