From e7423e4d3d9973e685466d6c1937c1034750e57b Mon Sep 17 00:00:00 2001 From: Andrew Pikul Date: Mon, 19 Aug 2024 16:37:07 -0400 Subject: [PATCH 1/2] Add jupyter stuff to .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 400df045..98f87691 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ __pycache__ # editor files *.sw* + +# ipynb +.ipynb_checkpoints/ From 63e38c44842380d54295ab07a3a5e41ec9e40132 Mon Sep 17 00:00:00 2001 From: Andrew Pikul Date: Mon, 19 Aug 2024 16:37:29 -0400 Subject: [PATCH 2/2] Add --user-data-dir to chrome flags: Adding a temporary directory as --user-data-dir to chrome flags will trick chrome into thinking a new user is running chrome, and therefore wont interfere with the currently running session. --- devtools/browser.py | 4 ++++ devtools/chrome_wrapper.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/devtools/browser.py b/devtools/browser.py index e80b9d58..63721fb8 100644 --- a/devtools/browser.py +++ b/devtools/browser.py @@ -5,11 +5,13 @@ import sys import subprocess import signal +import tempfile class Browser: def __init__(self, debug=None, path=None, headless=True): self.pipe = Pipe() + self.temp_dir = tempfile.TemporaryDirectory() if not debug: # false o None stderr = subprocess.DEVNULL @@ -28,6 +30,7 @@ def __init__(self, debug=None, path=None, headless=True): new_env = os.environ.copy() new_env["CHROMIUM_PATH"] = path + new_env["USER_DATA_DIR"] = self.temp_dir.name if headless: new_env["HEADLESS"] = "--headless" @@ -74,6 +77,7 @@ def close_browser(self): self.subprocess.terminate() self.subprocess.wait(5) self.subprocess.kill() + self.temp_dir.cleanup() def send_command(self, command, params=None, cb=None): return self.protocol.send_command(self, command, params, cb) diff --git a/devtools/chrome_wrapper.py b/devtools/chrome_wrapper.py index 8700e5c7..5f84f5be 100644 --- a/devtools/chrome_wrapper.py +++ b/devtools/chrome_wrapper.py @@ -26,11 +26,15 @@ else: path = os.environ["CHROMIUM_PATH"] +user_data_dir = os.environ["USER_DATA_DIR"] + cli = [ path, "--remote-debugging-pipe", "--disable-breakpad", "--allow-file-access-from-files", + f"--user-data-dir={user_data_dir}", + "--no-first-run" ] if "HEADLESS" in os.environ: