From 56563d7c723b467204fe7c15da799279cb282c2e Mon Sep 17 00:00:00 2001 From: Niels Geens Date: Tue, 3 Dec 2024 13:45:17 +0100 Subject: [PATCH] Added example scripts for using selenium --- selenium/dom.py | 38 ++++++++++++++++++++++++++++++++++++++ selenium/install.sh | 6 ++++++ selenium/start.sh | 5 +++++ 3 files changed, 49 insertions(+) create mode 100644 selenium/dom.py create mode 100644 selenium/install.sh create mode 100644 selenium/start.sh diff --git a/selenium/dom.py b/selenium/dom.py new file mode 100644 index 0000000..e062265 --- /dev/null +++ b/selenium/dom.py @@ -0,0 +1,38 @@ +from selenium import webdriver +from selenium.webdriver.chrome.options import Options +from selenium.webdriver.common.by import By +import json + +def connect_to_chrome(): + """ + Connect to an existing Chrome browser instance and print the DOM + """ + # Chrome options for connecting to existing browser + chrome_options = Options() + chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:1234") + + try: + # Connect to the existing browser + driver = webdriver.Chrome(options=chrome_options) + + # Get the current page's DOM + dom = driver.find_element(By.TAG_NAME, 'html').get_attribute('outerHTML') + + # Pretty print the DOM + parsed_dom = json.loads(json.dumps(dom)) + print(json.dumps(parsed_dom, indent=2)) + + return driver + + except Exception as e: + print(f"Error connecting to Chrome: {str(e)}") + print("\nMake sure Chrome is running with remote debugging enabled!") + print("Start Chrome with: chrome.exe --remote-debugging-port=9222") + return None + +if __name__ == "__main__": + driver = connect_to_chrome() + if driver: + # Keep the connection open until user input + input("Press Enter to close the connection...") + driver.quit() diff --git a/selenium/install.sh b/selenium/install.sh new file mode 100644 index 0000000..a663daf --- /dev/null +++ b/selenium/install.sh @@ -0,0 +1,6 @@ +apt-get update && apt-get install gnupg wget -y && \ + wget --quiet --output-document=- https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor > /etc/apt/trusted.gpg.d/google-archive.gpg && \ + sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' && \ + apt-get update && \ + apt-get install google-chrome-stable -y --no-install-recommends && \ + rm -rf /var/lib/apt/lists/* \ No newline at end of file diff --git a/selenium/start.sh b/selenium/start.sh new file mode 100644 index 0000000..735c264 --- /dev/null +++ b/selenium/start.sh @@ -0,0 +1,5 @@ +/opt/google/chrome/chrome \ +--no-sandbox \ +--headless=new \ +--remote-debugging-port=1234 \ +https://google.be & \ No newline at end of file