Alexis Eggermont
Alexis Eggermont

Reputation: 8165

Getting selenium to launch safari with default profile in python

I'm trying to launch Safari with Selenium in python with all my sessions logged in (e.g. gmail) so I don't have to login manually.

The easy solution would be to launch safari with the default user profile, but I can't find documentation on how to do this.

from selenium import webdriver
driver = webdriver.Safari()
url = 'https://www.gmail.com/'
driver.get(url)

Just for reference, the code below is the code for Chrome. What is the safari equivalent?

options.add_argument("user-data-dir=/Users/alexiseggermont/Library/Application Support/Google/Chrome/Default/") #Path to your chrome profile
driver = webdriver.Chrome(chrome_options=options)
driver.get(url)

Upvotes: 13

Views: 1640

Answers (2)

sayhan
sayhan

Reputation: 1184

There is setDataDir() function in SafariOptions on safari driver v2.43.1 according to document as following however I couldn't find any document about how to use it and there is no information about last versions:

* @param dataDir A File object pointing to the Safari installation's data directory.
* If {@code null}, the default installation location for the current platform will be used.


  public void setDataDir(File dataDir) {
    this.dataDir = Optional.fromNullable(dataDir);
  }

Upvotes: 1

Aidan H
Aidan H

Reputation: 122

From what I have read, Safari does not have user profiles. If you mean to start Safari from a different Mac user I would suggest doing it with bash:

sudo -u username python open.py

where username is the username of the user and open.py is your python file.

Upvotes: 1

Related Questions