Reputation: 31
I'm tying to create multiple windows of one website, so I need new identity for each. Private mode would be nice solution for me, I think. But old ways to do it doesn't give result:
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference("browser.privatebrowsing.autostart", True)
browser = webdriver.Firefox(firefox_profile=firefox_profile)
def main():
browser.switch_to.new_window('window')
browser.get("https://example.com")
I couldn't find any information in docks, so maybe you can help
Upvotes: 1
Views: 2167
Reputation: 31
I figured how to make private mode for firefox:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
def main():
firefox_options = Options()
firefox_options.add_argument('-private')
driver = webdriver.Firefox(options=firefox_options)
# driver.get("https://example.com")
if __name__ == "__main__":
main()
I've commented line with get to make sure that browser truly opens in private mode. You can see it in tab name.
But it didn't gave me new identity for each new window as I expected.
Upvotes: 1
Reputation: 193058
As per Selenium 4 beta 1 release notes:
Deprecate all but
Options
andService
arguments in driver instantiation. (#9125,#9128)
So you will see an error as:
firefox_profile has been deprecated, please pass in an Options object
You have to use an instance of Options
to pass the FirefoxProfile preferences as follows:
from selenium import webdriver
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.chrome.service import Service
def main():
firefox_options = Options()
firefox_options.set_preference("browser.privatebrowsing.autostart", True)
s = Service('C:\\BrowserDrivers\\geckodriver.exe')
driver = webdriver.Firefox(service=s, options=firefox_options)
driver.get("https://www.google.com")
if __name__== "__main__" :
main()
Browser Snapshot:
You can find a couple of relevant detailed discussions in:
Upvotes: 2
Reputation: 4088
This should be the "new" way:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--incognito")
service = Service(r"C:\Program Files (x86)\chromedriver.exe")
driver = webdriver.Chrome(service=service, options=chrome_options)
It should work the same way with Firefox.
Upvotes: 0