I'm trying to open chrome browser with password session in python3 and Selenium
Here is my code :
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
options = Options();
options.add_argument(r"--user-data-dir=/home/username/.config/google-chrome/")
options.add_argument(r'--profile-directory=User Profile')
service = Service('/opt/google/chrome/chromedriver')
driver = webdriver.Chrome(service=service, options=options)
It's open my chrome with my profile but delete all cookie and password connection.
How i can open chrome with my saved password and session ?
You're using linux, try undetected chromedriver as webdriver
Related
I am trying to automate some web scrapping in chrome
Previously I was trying it with a different method where the chrome used to open in guest mode and it was working, here is the previous method
url = 'https://stackoverflow.com/'#Example chrome = webdriver.Chrome(ChromeDriverManager().install())
chrome.get(url)
But when I shifted the method, where the chrome would open logged in by default, it is showing problems, there is no error, but driver.get(url) is not working, infact any lines after webdriver.Chrome... are not working
Here is the code after changes
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument(r"user-data-dir=C:\\Users\user\AppData\Local\Google\Chrome\User Data\Default")
url = "https://www.geeksforgeeks.org/"
driver = webdriver.Chrome(executable_path=r"C:\\Users\user\AppData\Local\Google\Chrome\Application\chrome.exe", options=options)
print("h")
driver.get(url)
This is where you made a mistake.
driver = webdriver.Chrome(executable_path=r"C:\\Users\user\AppData\Local\Google\Chrome\Application\chrome.exe", options=options)
you need to pass the PATH of the chrome driver Not the chrome browser installed path.
if you not sure path and your chrome browser compatibility then use below code.
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://opensource-demo.orangehrmlive.com/web/index.php/auth/login")
driver.implicitly_wait(5)
username ="//input[#placeholder='Username']"
password ="//input[#placeholder='Password']"
driver.find_element(By.XPATH, username).send_keys("Admin")
driver.find_element(By.XPATH, password).send_keys("admin123")
driver.find_element(By.XPATH, "//button[normalize-space()='Login']").click()
print("Test pass")
Above script is not having driver.close() but still chrome is getting closed automatically and login page is not opening
Not sure what mistake I am doing here
I am expecting Logged in paged after given login credentials
But chrome is getting closed instead
Add the below code and try:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(service=Service(<chromedriver.exe path>), options=options)
driver.get(<URL>)
webdriver_manager site has a code to start webdriver with brave, but instead of brave it opens it with google chrome. My selenium version 4.6.0 gave the following code for selenium 4 (I also tried the given codes for selenium 3) as it can be seen on the site, but the webdriver still opens with chrome
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as BraveService
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType
driver = webdriver.Chrome(service=BraveService(ChromeDriverManager(chrome_type=ChromeType.BRAVE).install()))
driver.get("https://pypi.org/project/webdriver-manager/")
Okay, so you just want to start a driver with Brave browser instead of chrome? Here is how I do that simplely, keep in mind I'm on Mac. You need the binaryPATH to the application.
add_block_ext = "Path to .crx extension"
driverPath = 'chromedriver'
binaryPath = '/Applications/Brave Browser.app/Contents/MacOS/Brave Browser'
options = webdriver.ChromeOptions()
options.binary_location = binaryPath
options.add_extension(add_block_ext)
browser = webdriver.Chrome(executable_path=binaryPath, chrome_options=options)
browser.get("https://www.google.com")
Automatically login gmail with selenium webdriver but when I close the browser and open it again normally, even I use selenium webdriver go to gmail, I must login again. Why?
This is my code
from selenium.webdriver.firefox.options import Options
from selenium import webdriver
import time
fp = webdriver.FirefoxProfile (r"K:\Desktop\Kiranaf\Profile")
options = Options()
options.set_preference('media.peerconnection.enabled', False)
options.set_preference('javascript.enabled', False)
driver = webdriver.Firefox(firefox_profile = fp,options = options)
driver.get("http://gmail.com")
...
Thanks for reply my question !!! :(
I can drive a headless browser using selenium and Chrome Canary.
But I can't get it to work using Splinter.
Thanks in advance.
Here's what works.
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.binary_location = '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary'
driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver', chrome_options=chrome_options)
Here's what doesn't work:
from splinter import Browser
executable_path = {'executable_path':'/Applications/Google Chrome Canary/Contents/MacOS/Google Chrome Canary'}
B=Browser('chrome',**executable_path)
Incidentally Splinter DOES work with phantomjs
executable_path = {'executable_path':'/Applications/phantomjs/bin/phantomjs'}
B=Browser('phantomjs',**executable_path )
The error message is
WebDriverException: Message: 'Google Chrome Canary' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
Here's the path, as perceived by os.os.environ['PATH']
/Users/jonschull-MBPR/miniconda2/bin:/Applications/Google Chrome Canary/Contents/MacOS/Google Chrome Canary:/Users/jonschull-MBPR/miniconda2/bin:/Users/jonschull-MBPR/anaconda/bin:/Users/jonschull-MBPR/Downloads/google-cloud-sdk/bin:/opt/local/bin:/opt/local/sbin:/Users/jonschull-MBPR/anaconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/chromedrive:/opt/X11/bin:/usr/local/mongodb/bin
And by the way, I've tried escaping "Google\ Chrome\ Canary "
Well, according to issue in splinter's git you just need to upgrade to splinter 0.7.6+.