Ir para o conteúdo

Automações e extensões da Web

Em alguns casos, é necessário usar extensões de navegador para prosseguir com um processo.

Neste guia, percorreremos as etapas necessárias para configurar extensões no navegador que estamos usando.

Usando Extensões no Firefox

Com o navegador Firefox selecionado, podemos adicionar facilmente uma extensão usando um arquivo .xpi.

O Framework Web da BotCity oferece um método específico para instalar uma extensão no Firefox, tudo o que precisamos é o arquivo .xpi referente à extensão.

...
# Importe para WebBot
from botcity.web import WebBot, Browser, By

bot = WebBot()

# Configuração para usar o Firefox
bot.browser = Browser.FIREFOX

# Definindo o caminho do Firefox Webdriver
bot.driver_path = "<webdriver path>"

# Definindo o caminho de extensão
extension_path = "<path to the .xpi file>"

# Adicionando a extensão
bot.install_firefox_extension(extension=extension_path)

bot.browse(...)

...
...

// Configuração para usar o Firefox
setBrowser(Browser.FIREFOX);

// Definindo o caminho do Firefox Webdriver
setDriverPath("<webdriver path>");

// Definindo o caminho de extensão
String extensionPath = "<path to the .xpi file>";

// Adicionando a extensão
installFirefoxExtension(extensionPath);

browse(...);

...

Dica

Você pode encontrar extensões e baixar os arquivos .xpi no site de complementos do Firefox.

Usando extensões no Chrome e Edge

Para Chrome e Edge, em vez de usar um método específico Adicionaremos a extensão através das options do navegador.

Assim como no Firefox, precisaremos de um arquivo que faça referência à extensão, nesse caso, será um arquivo .crx.

Aviso

Em alguns casos, Chrome e Edge podem não ser capazes de adicionar uma extensão corretamente.

Este é um problema do navegador, causando uma exceção ao tentar carregar uma extensão específica.

Para evitar esses casos, é recomendável usar Firefox sempre que possível.

...

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

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

# Importe para WebBot
from botcity.web import WebBot, Browser, By

bot = WebBot()

# Configuração para usar o Chrome
bot.browser = Browser.CHROME

# Definindo o caminho do Chrome Webdriver
bot.driver_path = "<webdriver path>"

# Definindo o caminho de extensão
extension_path = "<path to the .crx file>"

# Usando as default_options para adicionar extensões
def_options = default_options()
def_options.add_extension(extension_path)
bot.options = def_options

bot.browse(...)

...
...

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

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

// Configuração para usar o Chrome
setBrowser(Browser.CHROME);

// Definindo o caminho do Chrome Webdriver
setDriverPath("<webdriver path>");

// Definindo o caminho de extensão
String extensionPath = "<path to the .crx file>";

// Usando o DefaultOptions para adicionar extensões
ChromeConfig config = new ChromeConfig();
ChromeOptions options = (ChromeOptions) config.defaultOptions(isHeadless(), getDownloadPath(), null, PageLoadStrategy.NORMAL);
options.addExtensions(new File(extensionPath));
setOptions(options);

browse(...);

...