Como alterar a preferência de perfil do firefox após definir o driver da web usando Selenium e Python

Sep 20 2020

Como alterar a preferência de perfil após definir o driver?

profile = webdriver.FirefoxProfile()

driver = webdriver.Firefox(firefox_profile=profile)

Depois de algum código, é necessário definir o agente de usuário

profile.set_preference("general.useragent.override", ua)

Como configurá-lo sem definir um novo driver?

Respostas

1 GProst Sep 20 2020 at 17:45

Acredito que não seja possível, mas encontrei algumas soluções alternativas explicadas neste artigo, mas não tenho certeza se essas abordagens são confiáveis ​​(ou funcionam): https://tarunlalwani.com/post/change-profile-settings-at-runtime-firefox-selenium/

1 DebanjanB Sep 20 2020 at 20:50

De acordo com a implementação atual do Selenium, uma vez que você configura o GeckoDriver com recursos específicos e inicializa a sessão do firefox para abrir um contexto de navegação , você não pode alterar o tempo de execução dos recursos. Mesmo que você consiga recuperar os recursos de tempo de execução, não será possível alterá-los de volta.

Portanto, para alterar a preferência do usuário do Firefox, você deve iniciar uma nova sessão do WebDriver .

Nota : No entanto, você pode alterar o agente do usuário do Firefox em cada execução e pode encontrar uma discussão relevante em Como alterar o agente do usuário do webdriver do Firefox em Python?


Referência

Aqui está um comentário claro e conciso de @JimEvans (em 24 de outubro de 13 às 13h02) relacionado ao recurso de configurações de proxy:

Quando você define um proxy para qualquer driver, ele é definido apenas no momento em que a sessão do WebDriver é criada; não pode ser alterado em tempo de execução. Mesmo se você obtiver os recursos da sessão criada, não será capaz de alterá-la. Portanto, a resposta é: não, você deve iniciar uma nova sessão se quiser usar configurações de proxy diferentes.


Outro

Você pode encontrar algumas discussões detalhadas relevantes em:

  • Python e selênio: como alterar o perfil do Firefox várias vezes