Carregando...
Sem categoria

Fazendo o Selenium abrir o Firefox com um profile específico

O Selenium nem sempre abre uma sessão do Firefox já carregando cookies e sessões de sites que usam SSO (single sign-on).

Single Sign-On são aqueles websites em que você faz login apenas uma vez e ele nunca mais pergunta, sempre que você abre o navegador ele está logado automaticamente (tipo Facebook, Gmail, Whatsapp Web).

Então como podemos fazer para que, ao abrir uma página pelo Firefox no Selenium, ela esteja na sessão em que haja o single sign-on ativado?

O método mais certo é forçar o Selenium a usar um Profile específico do Firefox. Um profile guarda todos os cookies, sessões e dados de navegação do Firefox.

Você também pode tentar executar o selenium, fazer o login manualmente, salvar os cookies num arquivo e carregá-los sempre quando precisar do single sign-on, mas isso não funciona com todos os websites (não funcionou com o WhatsApp Web).

Vendo, criando e editando profiles no Firefox

Para abrir o editor de profiles do Firefox, abra ele com o argumento -profilemanager:

./firefox -profilemanager


Uma janela abrirá, e nela você consegue ver o nome, editar e criar profiles.

Descobrindo a pasta de profiles no Firefox

No Linux a pasta de profiles está em:

~/.mozilla/firefox/codigo_aleatorio.nome_do_profile

Forçando o Selenium a usar o Profile do Firefox

Você precisa informar o caminho do seu Firefox Profile.
Se você estiver usando o Selenium Standalone, você pode passar um profile dentro do seu próprio computador (e não no computador onde o Selenium rodará, isso parece muito estranho, mas funciona!).

Referências

Documentação oficial do Firefox no Selenium para Python
https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.firefox.firefox_profile

Abrindo o Profile Manager do Firefox
https://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.qb.server.doc/doc/t0021672.html

Usando o Profile do Firefox no Selenium com Java
https://stackoverflow.com/questions/16616808/remote-webdriver-passing-firefox-profile-with-rest-client-extension-add-on

Usando o Profile do Chrome no Selenium do Python (stack overflow)
https://stackoverflow.com/questions/45651879/using-selenium-how-to-keep-logged-in-after-closing-driver-in-python

Usando o Profile do Chrome no Selenium do Python (reddit)
https://www.reddit.com/r/learnpython/comments/79fe5j/cant_save_the_session_of_whatsapp_web_with/

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *