As shown bellow, the dictionary does contain a cookie with the attribute "name". For some reason the code worked once and is now throwing this error every time it is run :
File "/Users/me/Documents/Programming/browzine/last draft.py", line 201, in <lambda> cookie_list = list(map(lambda h: h.name+'='+h.value+'; ', driver.get_cookies())) AttributeError: 'dict' object has no attribute 'name' Here is what I get when I print the cookies with Selenium's driver.get_cookies() :
{'domain': '.idm.oclc.org', 'httpOnly': True, 'name': 'ezproxyl', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': 'snKQGpdG4GDPhMd'} {'domain': '.idm.oclc.org', 'httpOnly': True, 'name': 'ezproxyn', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': 'snKQGpdG4GDPhMd'} {'domain': '.idm.oclc.org', 'httpOnly': False, 'name': 'ezproxy', 'path': '/', 'secure': False, 'value': 'snKQGpdG4GDPhMd'} My code:
def check_need_to_sign_in(): new_tab = driver.window_handles driver.switch_to.window(str(new_tab[-1])) url = driver.current_url i = 0 try: WebDriverWait(driver, 5).until(EC.element_to_be_clickable( (By.XPATH, "//input[@class='form-control ltr_override input ext-input text-box ext-text-box']"))) print("Sign-in necessary") for cookie in driver.get_cookies(): print(cookie) cookie_list = list(map(lambda h: h.name+'='+h.value+'; ', driver.get_cookies())) cookie_string = ''.join(cookie_list) print(cookie_string) headers = {} headers["Cookie"] = cookie_string s = req.session() s.headers.update(headers) for cookie in driver.get_cookies(): print(cookie) sign_in() response = req.get(url, verify=False) while i < 1: print(response.ok) if response.ok == True: with open(f"{article_title[13:]}.pdf", 'wb') as f: f.write(response.content) i = + 1