watir-webdriver cambia el proxy manteniendo el navegador abierto

Estoy usando la biblioteca Watir-Webdriver en Ruby para revisar algunas páginas. Sé que puedo conectarme a través de un proxy usando

profile = Selenium::WebDriver::Firefox::Profile.new#create a new profile profile.proxy = Selenium::WebDriver::Proxy.new(#create proxy data for in the profile :http => proxyadress, :ftp => nil, :ssl => nil, :no_proxy => nil ) browser = Watir::Browser.new :firefox, :profile => profile#create a browser window with this profile browser.goto "http://www.example.com" browser.close 

Sin embargo, cuando deseo conectarme a la misma página varias veces con diferentes proxies, tengo que crear un nuevo navegador para cada proxy. Cargar (y descargar) el navegador lleva bastante tiempo.

Entonces, mi pregunta: ¿Hay alguna forma de cambiar, usando webdriver en ruby, la dirección proxy que usa Firefox para conectarse y mantener el navegador abierto?

Si desea probar si una página está bloqueada cuando se accede a través de un servidor proxy, puede hacerlo a través de una biblioteca sin cabeza. Recientemente tuve éxito utilizando mecanizar. Probablemente puedas usar net / http también.

Todavía no estoy seguro de por qué necesita cambiar el servidor proxy para una sesión actual.

 require 'Mechanize' session = Mechanize.new session.set_proxy(host, port, user, pass) session.user_agent='Mac Safari' session.agent.robots = true #observe of robots.txt rules response = session.get(url) puts response.code 

Debe proporcionar el servidor proxy / puerto / usuario / pase (usuario / pase son opcionales) y la url . Si obtienes una excepción, el código de respuesta probablemente no sea amigable.

Es posible que deba usar una herramienta de automatización a nivel del sistema operativo para automatizar el paso por los menús de FF para cambiar la configuración como lo haría un usuario.

Para los usuarios de Windows existe la opción de la nueva herramienta de automatización, o AutoIT. ambos se pueden usar para automatizar cosas en el nivel de la interfaz de usuario del sistema operativo, lo que le permitiría acceder a la configuración del navegador y cambiar el proxy allí.

Sin embargo, creo que si está verificando un número mayor de sitios, la sobrecarga para cambiar la configuración del proxy no sería mucho en comparación con toda la navegación del sitio y esperar a que se carguen las páginas, etc.

¿A menos que esté tomando un enfoque de ‘recorrido de fila’ y cambie la configuración del proxy varias veces para cada sitio que esté verificando? Si ese es el caso, me gustaría utilizar más de un método por columna (si tuviéramos que suponer que cada columna es un proxy, y cada fila es un sitio) y encender el navegador para un proxy, revisar todos los sitios, luego cambiar El proxy y volver a comprobar todos los sitios. De esa manera solo cambiaría la configuración del proxy una vez para cada proxy, lo que no debería agregar tanta sobrecarga a su script.

Puede significar un poco más de trabajo con el almacenamiento y luego informar los resultados al final (si los ha estado escribiendo una línea a la vez), pero para eso están los hashes o las matrices.