Ir para o conteúdo

Automações Web e perfis de usuários

O Framework Web da BotCity, por padrão, gera um diretório temporário (que posteriormente é apagado) para ser usado como diretório de perfil, desta forma, a cada execução uma nova sessão limpa do navegador é iniciada, garantindo que informações como cookies, senhas e certificados armazenados não interfiram nas execuções.

No entanto, em alguns casos, é pertinente usar um perfil de usuário existente para aproveitar uma sessão já logada em um sistema ou até mesmo para reduzir o risco de ser bloqueado por sistemas de detecção de bots.

Configurando o navegador para usar um perfil específico

Por padrão, os navegadores lançados através do Framework Web da BotCity possuem um conjunto de opções selecionadas e escolhidas como essenciais para automações RPA. Porém, você pode precisar personalizar essas opções, como neste caso, onde iremos definir um perfil existente para o navegador inicializado.

Nós iremos definir essa configuração através da propriedade options do navegador, acessando-a através do default_options. Assim, é possível definir o caminho do diretório do perfil que deseja utilizar ao iniciar o navegador com o WebBot, passando esse caminho para a variável user_data_dir.

A seguir, você acompanhará os passos para configurar os navegadores Google, Firefox e MSEdge para usar um perfil já existente em suas navegações com o WebBot.

Google Chrome

Para iniciar o navegador Chrome com um perfil já existente com o Framework Web da BotCity é muito simples, basta importar a propriedade default_options em seu código, e passar o caminho do perfil de usuário escolhido para a variável user_data_dir, como mostra o trecho a seguir:

from botcity.web import WebBot, Browser
from botcity.web.browsers.chrome import default_options

def main():
    # Instacia o WebBot
    bot = WebBot()

    # Configure se deseja ou não executar no modo headless.
    bot.headless = False

    profile_path = "<your browser profile path>/"

    # Busque as opções padrão para meu navegador preferido
    # Passe os parâmetros headless e user_data_dir 
    # a ser usado ao criar as default_options
    def_options = default_options(
        headless=bot.headless,
        user_data_dir=profile_path  # Informar caminho do perfil que deseja iniciar o navegador
    ) 

    # Atualize as opções para usar as opções personalizadas.
    bot.options = def_options

    # Abre o navegador no site do BotCity com um perfil existente
    bot.browse("https://botcity.dev")
import dev.botcity.framework.bot.WebBot;
import dev.botcity.framework.web.browsers.Browser;

import dev.botcity.framework.web.browsers.ChromeConfig;


public void action(BotExecution botExecution) {
    try {

        String profilePath = "<your browser profile path>/";

        // Configure se deve ou não executar no modo headless
        setHeadless(false);

        // Busque as opções padrão para meu navegador preferido
        ChromeConfig chromeConfig = new ChromeConfig();
        ChromeOptions defOptions = (ChromeOptions) chromeConfig.defaultOptions(
                isHeadless(), // Definindo o modo headless (usando o padrão)
                profilePath // Informar caminho do perfil que deseja iniciar o navegador
        );

        // Atualize as opções para usar as opções personalizadas.
        setOptions(defOptions);

        // Abre o navegador no site do BotCity com um perfil existente
        browse("https://botcity.dev");

        ...

Dica

A instalação padrão do Chrome costuma armazenar as informações de perfis de usuários em um caminho parecido com esse:

C:\Users\<seu_usuário>\AppData\Local\Google\Chrome\User Data\Profile 1"

Firefox

Para iniciar o navegador Firefox com um perfil já existente com o Framework Web da BotCity é muito simples, basta importar a propriedade default_options em seu código, e passar o caminho do perfil de usuário escolhido para a variável user_data_dir, como mostra o trecho a seguir:

from botcity.web import WebBot, Browser
from botcity.web.browsers.firefox import default_options

def main():
    # Instacia o WebBot
    bot = WebBot()

    # Configure se deseja ou não executar no modo headless.
    bot.headless = False

    profile_path = "<your browser profile path>/"

    # Busque as opções padrão para meu navegador preferido
    # Passe os parâmetros headless e user_data_dir 
    # a ser usado ao criar as default_options
    def_options = default_options(
        headless=bot.headless,
        user_data_dir=profile_path # Informar caminho do perfil que deseja iniciar o navegador
    ) 

    # Atualize as opções para usar as opções personalizadas.
    bot.options = def_options

    # Abre o navegador no site do BotCity com um perfil existente
    bot.browse("https://botcity.dev")

    ...
import dev.botcity.framework.bot.WebBot;
import dev.botcity.framework.web.browsers.Browser;

import dev.botcity.framework.web.browsers.FirefoxConfig;


public void action(BotExecution botExecution) {
    try {

        String profilePath = "<your browser profile path>/";

        // Configure se deve ou não executar no modo headless
        setHeadless(false);

        // Busque as opções padrão para meu navegador preferido
        FirefoxConfig firefoxConfig = new FirefoxConfig();
        FirefoxOptions defOptions = (FirefoxOptions) firefoxConfig.defaultOptions(
                isHeadless(), // Definindo o modo headless (usando o padrão)
                profilePath // Informar caminho do perfil que deseja iniciar o navegador"
        );

        // Atualize as opções para usar as opções personalizadas.
        setOptions(defOptions);

        // Abre o navegador no site do BotCity com um perfil existente
        browse("https://botcity.dev");

        ...

Dica

A instalação padrão do Firefox costuma armazenar as informações de perfis de usuários em um caminho parecido com esse:

C:\Users\<seu_usuário>\AppData\Local\Mozilla\Firefox\Profiles\profile_1

Microsoft Edge (MSEdge)

Para iniciar o navegador Edge com um perfil já existente com o Framework Web da BotCity é muito simples, basta importar a propriedade default_options em seu código, e passar o caminho do perfil do usuário para a variável user_data_dir, como mostra o trecho a seguir:

from botcity.web import WebBot, Browser
from botcity.web.browsers.edge import default_options

def main():
    # Instacia o WebBot
    bot = WebBot()

    # Configure se deseja ou não executar no modo headless.
    bot.headless = False

    profile_path = "<your browser profile path>/"

    # Busque as opções padrão para meu navegador preferido
    # Passe os parâmetros headless e user_data_dir 
    # a ser usado ao criar as default_options
    def_options = default_options(
        headless=bot.headless,
        user_data_dir=profile_path  # Informar caminho do perfil que deseja iniciar o navegador
    ) 

    # Atualize as opções para usar as opções personalizadas.
    bot.options = def_options

    # Abre o navegador no site do BotCity com um perfil existente
    bot.browse("https://botcity.dev")

    ...
import dev.botcity.framework.bot.WebBot;
import dev.botcity.framework.web.browsers.Browser;

import dev.botcity.framework.web.browsers.EdgeConfig;


public void action(BotExecution botExecution) {
    try {

        String profilePath = "<your browser profile path>/";

        // Configure se deve ou não executar no modo headless
        setHeadless(false);

        // Busque as opções padrão para meu navegador preferido
        EdgeConfig edgeConfig = new EdgeConfig();
        EdgeOptions defOptions = (EdgeOptions) edgeConfig.defaultOptions(
                isHeadless(), // Definindo o modo headless (usando o padrão)
                profilePath // Informar caminho do perfil que deseja iniciar o navegador
        ); 

        // Atualize as opções para usar as opções personalizadas.
        setOptions(defOptions);

        // Abre o navegador no site do BotCity com um perfil existente
        browse("https://botcity.dev");

        ...

Dica

A instalação padrão do Edge costuma armazenar as informações de perfis de usuários em um caminho parecido com esse:

C:\Users\<seu_usuário>\AppData\Local\Microsoft\Edge\User Data\Profile 1

Caso queira definir o perfil default, basta trocar o Profile 1 por Default.

Com essas instruções, você pode configurar o BotCity Framework Web para usar um perfil existente nos navegadores suportados, permitindo a reutilização de sessões de login e melhorando a eficiência de suas automações web.