Anuncio
La clave para la automatización es hacer las cosas más rápido y más fácil que nunca. Entonces, ¿qué te lleva mucho tiempo hacer? ¿Qué parte de su carga de trabajo le gustaría automatizar?
Cuando se trata de productividad, Excel es la herramienta más común utilizada por las personas para cosas como organizar las finanzas, Gestión de proyectosy priorizando objetivos. La semana pasada, describí cómo automatizar IE configurando grupos de URL en hojas de Excel, y luego usando el objeto IE en Windows para automatizar el lanzamiento de grupos de URL directamente desde Excel.
Después de ese artículo, muchos lectores preguntaron cómo hacer lo mismo en Firefox o Chrome. Dado que ni Firefox ni Chrome tienen un objeto similar incluido con Windows que se pueda usar para la automatización de VBA, realizar el mismo tipo de acciones en esos otros navegadores requiere un paso adicional. Ese paso es la instalación de Selenium VBA - Un contenedor de Windows COM para Selenium.
Le permite realizar llamadas desde cualquier aplicación que admita VBA para abrir un navegador, no solo IE, y controlar esa sesión del navegador. Es una poderosa herramienta de automatización que se usa con tanta frecuencia que muchos proveedores de navegadores populares están incorporando Selenium como parte nativa de su navegador. Usarlo en sus aplicaciones de automatización seguramente será compatible en los próximos años.
Automatizar Firefox y Chrome con Selenium
Antes de comenzar con este proyecto, deberá descargar e instalar el contenedor VBA Selenium. Entonces, tal como lo discutí en el artículo sobre automatización de IE, para escribir cualquier VBA en Excel, debe ingresar al modo de diseño y ver el código. Si nunca antes ha hecho esto, solo tiene que ir al elemento de menú "Desarrollador" y hacer clic en Modo de diseño. Haga clic en el botón "Insertar", haga clic en el botón ActiveX y dibuje en su hoja en alguna parte. Una vez que haya hecho eso, haga clic en el botón y luego haga clic en "Ver código".

En la ventana del editor de código, en la esquina inferior izquierda, asegúrese de cambiar tanto el "Nombre" como el "Título" para reflejar para qué sirve el botón. En este caso, el botón será abrir la lista de URL que ha enumerado en la hoja de cálculo. En mi caso, simplemente lo llamé cmdLoadURLs e hice el título "Cargar URL" (esto es lo que aparece en el botón).

A continuación, debe habilitar Selenium Wrapper haciendo clic en el menú Herramientas, luego haga clic en "Referencias" y luego busque la referencia llamada "Biblioteca de tipos de SeleniumWrapper". Marque esa casilla de referencia y luego haga clic en Aceptar.

¡Ahora está listo para comenzar a escribir código de automatización del navegador con Selenium Wrapper!
Funcionalidad de la envoltura de selenio
El Selenium VBA Wrapper te ofrece mucha más funcionalidad de la que podré mostrarte en este artículo. Puede ver cuánto está disponible más allá del WebDriver, definiendo el objeto Selenium como "Nuevo SeleniumWrapper". Cuando escribe el punto, desplegará todos los elementos de los tipos de objetos que puede controlar, como imágenes del navegador, archivos PDF, teclas del teclado y más.

Este código de ejemplo utilizará WebDriver. Una vez que use el objeto Selenium WebDriver en su código y escriba el punto, desplegará una lista muy larga de métodos y propiedades que puede usar para automatizar su navegador web.

Puede tomar algún tiempo aprender todo lo que está disponible, pero Google puede encontrar algunos buenos ejemplos, detrás de las muestras disponibles en Página de códigos de Google. Desafortunadamente, hasta donde yo sé, no existe una guía sencilla para usar Selenium, ¡pero agradecería a los lectores que puedan proporcionar recursos!
Escribir su código de selenio de VBA
En este ejemplo, como en el artículo de IE, he creado una lista de URL que quiero abrir en Firefox automáticamente. Luego creé el botón como se describe en la primera parte de este artículo.

El código detrás del botón es sencillo, pero voy a explicar qué hace cada sección. En primer lugar, debe iniciar la aplicación Firefox. El método "selenium.start" hará eso. Los métodos setTimeout y setImplicitWait no son críticos, pero pueden evitar que su aplicación se bloquee para siempre si el navegador no responde por alguna razón.
Dim selenio como nuevo SeleniumWrapper. WebDriver. Dim FF como objeto. Dim intRowPosition As Integer. Dim keys As New SeleniumWrapper.keys selenium. Comience "firefox", " https://www.google.com" selenium.setTimeout ("120000") selenium.setImplicitWait (5000) intRowPosition = 2. selenio. Abrir Hoja1.Rango ("A" y intRowPosition)
El último par de líneas establece la fila de los datos de Excel para leer (fila dos, donde se almacena la primera URL en el hoja de cálculo) y luego realiza el método "selenium.open" para leer la URL de esa hoja de cálculo y abrirla en Firefox

La siguiente sección de código incrementa el puntero de fila y lee la siguiente URL de la lista. Si la celda no está en blanco, usa el método SendKeys para iniciar una nueva pestaña en Firefox, lee la siguiente URL de esa venta y abre la URL en esa nueva pestaña.
intRowPosition = intRowPosition + 1 While Sheet1.Range ("A" & intRowPosition) <> vbNullString selenium. Llaves SendKeys. Control y "t" selenio. Abra Sheet1.Range ("A" & intRowPosition) intRowPosition = intRowPosition + 1. Wend Set IE = Nothing
El script recorrerá toda su lista hasta que todas las URL estén abiertas en sus propias pestañas. Aquí está el navegador después de que el ciclo pasó por segunda vez y abrió MUO en una nueva pestaña.

Si desea utilizar este código para Chrome, todo lo que necesita hacer es cambiar la línea "selenio". Inicie "firefox" "a" Chrome "en su lugar.
Ahora crea tu propio guión
Como mencioné anteriormente, la mejor manera de aprender el poder del Selenium Wrapper es escribir "selenio" en su código, presione el punto y simplemente explore la larga lista de propiedades disponibles y métodos. Por ejemplo, puede usar la propiedad .URL para obtener la URL de la pestaña actualmente abierta en Firefox o Chrome.

Como puede ver, hay muchas más cosas que puede hacer que van mucho más allá del alcance de este artículo. Pero experimenta y diviértete. Afortunadamente, la mayoría de las funciones mostrarán texto de ayuda emergente que le mostrará qué parámetros espera cada función. Eso puede ser de gran ayuda cuando se trata de descubrir cómo usarlo.
Para su próximo proyecto de secuencias de comandos, ¿qué tal creando tu propia aplicación simple con VBA Cómo puedes hacer tu propia aplicación simple con VBA¿Quiere saber cómo hacer su propia aplicación VBA para resolver problemas? Use estos consejos para crear su propio software VBA. Lee mas ?
Ryan tiene una licenciatura en ingeniería eléctrica. Ha trabajado 13 años en ingeniería de automatización, 5 años en TI y ahora es ingeniero de aplicaciones. Ex editor jefe de MakeUseOf, ha hablado en conferencias nacionales sobre visualización de datos y ha aparecido en la televisión y radio nacionales.