Files
SIA/selenium/dom.py
2024-12-03 13:45:17 +01:00

39 lines
1.3 KiB
Python

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()