Come modificare la preferenza del profilo Firefox dopo aver definito il webdriver utilizzando Selenium e Python
Come modificare la preferenza del profilo dopo aver definito il driver?
profile = webdriver.FirefoxProfile()
driver = webdriver.Firefox(firefox_profile=profile)
Dopo un po 'di codice è necessario impostare useragent
profile.set_preference("general.useragent.override", ua)
Come impostarlo senza definire un nuovo driver?
Risposte
Credo che non sia possibile, ma ho trovato alcune soluzioni alternative spiegate in questo articolo, non sono sicuro che questi approcci siano affidabili (o funzionino affatto): https://tarunlalwani.com/post/change-profile-settings-at-runtime-firefox-selenium/
In base all'attuale implementazione di Selenium, una volta configurato GeckoDriver con funzionalità specifiche e inizializzato la sessione di Firefox per aprire un contesto di navigazione , non è possibile modificare il runtime delle funzionalità. Anche se sei in grado di recuperare le funzionalità di runtime, non sarai comunque in grado di cambiarle di nuovo.
Quindi, per modificare le preferenze utente di Firefox è necessario avviare una nuova sessione di WebDriver .
Nota : tuttavia, è possibile modificare lo user-agent per Firefox ad ogni esecuzione e si può trovare una discussione pertinente in Come cambiare lo user-agent per il webdriver Firefox in Python?
Riferimento
Ecco un commento chiaro e conciso di @JimEvans (a partire dal 24 ottobre 13 alle 13:02) relativo alla funzionalità delle impostazioni proxy:
Quando si imposta un proxy per un determinato driver, viene impostato solo al momento della creazione della sessione WebDriver; non può essere modificato in fase di esecuzione. Anche se ottieni le capacità della sessione creata, non sarai in grado di cambiarla. Quindi la risposta è no, è necessario avviare una nuova sessione se si desidera utilizzare impostazioni proxy diverse.
Outro
Puoi trovare un paio di discussioni dettagliate pertinenti in:
- Python e selenio: come cambiare più volte il profilo di Firefox