Saltar a contenido

Automatización web y extensiones

En algunos casos, es necesario utilizar extensiones del navegador para continuar con el proceso.

En esta guía, explicaremos los pasos necesarios para configurar extensiones en el navegador que estemos utilizando.

Uso de extensiones en Firefox

Con el navegador Firefox seleccionado, podemos agregar fácilmente una extensión utilizando un archivo .xpi.

El Framework Web de BotCity ofrece un método específico para instalar una extensión en Firefox, todo lo que necesitamos es el archivo .xpi que hace referencia a la extensión.

...
# Import for the WebBot
from botcity.web import WebBot, Browser, By

bot = WebBot()

# Setting to use Firefox
bot.browser = Browser.FIREFOX

# Setting the path of the Firefox WebDriver
bot.driver_path = "<webdriver path>"

# Setting the extension path
extension_path = "<path to the .xpi file>"

# Adding the extension
bot.install_firefox_extension(extension=extension_path)

bot.browse(...)

...
...

// Setting to use Firefox
setBrowser(Browser.FIREFOX);

// Setting the path of the Firefox WebDriver
setDriverPath("<webdriver path>");

// Setting the extension path
String extensionPath = "<path to the .xpi file>";

// Adding the extension
installFirefoxExtension(extensionPath);

browse(...);

...

Tip

Puedes encontrar extensiones y descargar archivos .xpi en el sitio web de complementos de Firefox.

Uso de extensiones en Chrome y Edge

Para Chrome y Edge, en lugar de utilizar un método específico, agregaremos la extensión a través de las opciones del navegador.

Al igual que con Firefox, necesitaremos un archivo que haga referencia a la extensión, en este caso será un archivo .crx.

Warning

En algunos casos, Chrome y Edge pueden no poder agregar una extensión correctamente.

Esto es un problema del navegador que causa una excepción al intentar cargar una extensión específica.

Para evitar estos casos, se recomienda utilizar Firefox siempre que sea posible.

...

# For Chrome
from botcity.web.browsers.chrome import default_options

# For Edge
# from botcity.web.browsers.edge import default_options

# Import for the WebBot
from botcity.web import WebBot, Browser, By

bot = WebBot()

# Setting to use Chrome
bot.browser = Browser.CHROME

# Setting the path of the Chrome WebDriver
bot.driver_path = "<webdriver path>"

# Setting the extension path
extension_path = "<path to the .crx file>"

# Using the default_options to add extensions
def_options = default_options()
def_options.add_extension(extension_path)
bot.options = def_options

bot.browse(...)

...
...

// For Chrome
import dev.botcity.framework.web.browsers.ChromeConfig;
import org.openqa.selenium.chrome.ChromeOptions;

// For Edge
// import dev.botcity.framework.web.browsers.EdgeConfig;
// import org.openqa.selenium.edge.EdgeOptions;

// Setting to use Chrome
setBrowser(Browser.CHROME);

// Setting the path of the Chrome WebDriver
setDriverPath("<webdriver path>");

// Setting the extension path
String extensionPath = "<path to the .crx file>";

// Using the defaultOptions to add extensions
ChromeConfig config = new ChromeConfig();
ChromeOptions options = (ChromeOptions) config.defaultOptions(isHeadless(), getDownloadPath(), null, PageLoadStrategy.NORMAL);
options.addExtensions(new File(extensionPath));
setOptions(options);

browse(...);

...