Comment modifier les préférences de profil Firefox après avoir défini Webdriver à l'aide de Selenium et Python

Sep 20 2020

Comment changer la préférence de profil après avoir défini le pilote?

profile = webdriver.FirefoxProfile()

driver = webdriver.Firefox(firefox_profile=profile)

Après un peu de code, vous devez définir useragent

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

Comment le configurer sans définir de nouveau pilote?

Réponses

1 GProst Sep 20 2020 at 17:45

Je pense que ce n'est pas possible, mais j'ai trouvé des solutions de contournement expliquées dans cet article, je ne sais pas si ces approches sont fiables (ou fonctionnent du tout): https://tarunlalwani.com/post/change-profile-settings-at-runtime-firefox-selenium/

1 DebanjanB Sep 20 2020 at 20:50

Selon l'implémentation actuelle de Selenium, une fois que vous avez configuré le GeckoDriver avec des capacités spécifiques et initialisé la session Firefox pour ouvrir un contexte de navigation , vous ne pouvez pas modifier le runtime des capacités. Même si vous êtes en mesure de récupérer les capacités d'exécution, vous ne pourrez toujours pas les modifier.

Ainsi, pour changer la préférence utilisateur de Firefox, vous devez lancer une nouvelle session WebDriver .

Remarque : Cependant, vous pouvez changer l' agent utilisateur pour Firefox à chaque exécution et vous pouvez trouver une discussion pertinente dans Comment changer l'agent utilisateur pour Firefox webdriver en Python?


Référence

Voici le commentaire clair et concis de @JimEvans (du 24 octobre 13 à 13:02) concernant la capacité des paramètres de proxy:

Lorsque vous définissez un proxy pour un pilote donné, il est défini uniquement au moment de la création de la session WebDriver; il ne peut pas être modifié lors de l'exécution. Même si vous bénéficiez des fonctionnalités de la session créée, vous ne pourrez pas la modifier. La réponse est donc non, vous devez démarrer une nouvelle session si vous souhaitez utiliser des paramètres de proxy différents.


Outro

Vous pouvez trouver quelques discussions détaillées pertinentes dans:

  • Python et sélénium: comment changer plusieurs fois le profil de Firefox