44from selenium import webdriver
55from selenium .webdriver .chrome .options import Options
66from selenium .webdriver .chrome .service import Service
7+ from selenium .webdriver .support .wait import WebDriverWait
78
9+ from selenium .webdriver .common .by import By
10+ from selenium .webdriver .support import expected_conditions as EC
811
912def setup_driver (cookie_value ):
1013 print ('Setting up Chrome driver...' )
@@ -32,11 +35,10 @@ def setup_driver(cookie_value):
3235
3336 # Set up cookie before any navigation
3437 print ('Setting up cookie...' )
35-
36- driver .execute_cdp_cmd ('Network.setExtraHTTPHeaders' , {
37- 'headers' : {
38- 'Cookie' : cookie_value ,
39- }
38+ driver .add_cookie ({
39+ 'name' : 'session' ,
40+ 'value' : cookie_value .lstrip ('session=' ),
41+ 'domain' : '.adventofcode.com' ,
4042 })
4143
4244 print ('Chrome driver initialized successfully' )
@@ -55,20 +57,16 @@ def take_screenshot(driver, url, selector, output_name):
5557 driver .get (url )
5658 time .sleep (3 ) # Give the page time to load
5759
58- # Take full page screenshot for debugging
59- driver .save_screenshot (f'screenshots/{ output_name } _full.png' )
60- print ('Saved full page screenshot for debugging' )
61-
62- # print('Waiting for element...')
63- # element = WebDriverWait(driver, 15).until(
64- # EC.presence_of_element_located((By.CSS_SELECTOR, selector))
65- # )
66- #
67- # print('Element found, taking screenshot...')
68- # driver.execute_script('arguments[0].scrollIntoView();', element)
69- # time.sleep(2)
70- # element.screenshot(f'screenshots/{output_name}.png')
71- # print(f'Screenshot saved as screenshots/{output_name}.png')
60+ print ('Waiting for element...' )
61+ element = WebDriverWait (driver , 15 ).until (
62+ EC .presence_of_element_located ((By .CSS_SELECTOR , selector ))
63+ )
64+
65+ print ('Element found, taking screenshot...' )
66+ driver .execute_script ('arguments[0].scrollIntoView();' , element )
67+ time .sleep (2 )
68+ element .screenshot (f'screenshots/{ output_name } .png' )
69+ print (f'Screenshot saved as screenshots/{ output_name } .png' )
7270
7371 except Exception as e :
7472 print (f'Error during screenshot process: { e !s} ' )
0 commit comments