@@ -95,21 +95,11 @@ def login(driver):
9595 driver .get ('https://www.instagram.com/' )
9696 wait (2 , 4 )
9797
98- driver .save_screenshot (f"{ LOG_DIR } /login.png" )
99- with open (f"{ LOG_DIR } /feed_snapshot.html" , "w" , encoding = "utf-8" ) as f :
100- f .write (driver .page_source )
101-
10298 try :
103- WebDriverWait (driver , 5 ).until (
104- EC .presence_of_element_located ((By .TAG_NAME , "article " ))
99+ username_field = WebDriverWait (driver , 5 ).until (
100+ EC .presence_of_element_located ((By .NAME , "username " ))
105101 )
106- logger .info ("Session already active, skipping login..." )
107- return True
108- except NoSuchElementException :
109- logger .info ("Login required..." )
110-
111- try :
112- username_field = driver .find_element (By .NAME , "username" )
102+ logger .info ("Logging in..." )
113103 password_field = driver .find_element (By .NAME , "password" )
114104 typing (username_field , IG_USERNAME )
115105 wait (0.5 , 1.5 )
@@ -136,20 +126,19 @@ def login(driver):
136126 wait (1 , 2 )
137127 except TimeoutException :
138128 continue
139- except Exception as e :
140- logger .debug (f"Failed to dismiss popup { xpath } : { e } " )
141129
142130 # load homepage
143- WebDriverWait (driver , 15 ).until (EC .presence_of_element_located ((By .TAG_NAME , "article " )))
144- logger .info (f"Login successful, { driver . current_url } loaded!" )
131+ WebDriverWait (driver , 15 ).until (EC .presence_of_element_located ((By .XPATH , "//*[local-name()='svg' and @aria-label='New post'] " )))
132+ logger .info (f"Login successful, home page loaded!" )
145133 return True
146134 except TimeoutException :
147- logger .error ("Login failed, timed out waiting for homepage :( " )
135+ logger .info ("Login form not found, assuming session is active " )
148136 driver .save_screenshot (f"{ LOG_DIR } /login_failed.png" )
149137 return False
150138 except Exception as e :
151139 logger .error (f"An error occurred during login: { e } " )
152140 logger .error (traceback .format_exc ())
141+ driver .save_screenshot (f"{ LOG_DIR } /login_error.png" )
153142 return False
154143
155144
0 commit comments