from selenium import webdriver
from time import sleep
from selenium.webdriver.support.ui import WebDriverWait
driver=webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.implicitly_wait(10)
driver.find_element_by_xpath("(//*[text()=\"登录\"])[2]").click()
driver.find_element_by_xpath("//*[text()=\"帐号登录\"]").click()
driver.find_element_by_xpath("//*[@name=\"userName\"]").send_keys("183XXXX")
driver.find_element_by_xpath("//*[@id=\"TANGRAM__PSP_11__password\"]").send_keys("aaXXXX")
driver.find_element_by_xpath("//*[@id=\"TANGRAM__PSP_11__submit\"]").click()
cookie1=driver.get_cookies()
print(cookie1)
driver.delete_all_cookies()
driver.refresh()
print("delete cookie then refresh")
# cookie1=[{'name': 'BA_HECTOR', 'domain': '.baidu.com', 'expiry': 1642397039, 'secure': False, 'httpOnly': False, 'value': '2p800h2gah202h4gld1gu9rr00q', 'path': '/'}, {'name': 'BAIDUID_BFESS', 'domain': '.baidu.com', 'expiry': 1673929441, 'sameSite': 'None', 'httpOnly': False, 'secure': True, 'value': '69D8136B54D4D5CB9D4AEEBD2BB4AEE4:FG=1', 'path': '/'}, {'name': 'H_PS_PSSID', 'domain': '.baidu.com', 'path': '/', 'secure': False, 'httpOnly': False, 'value': '35105_35630_34584_35490_35701_34812_35320_26350'}, {'name': 'BAIDUID', 'domain': '.baidu.com', 'expiry': 1673929433, 'secure': False, 'httpOnly': False, 'value': '69D8136B54D4D5CB9D4AEEBD2BB4AEE4:FG=1', 'path': '/'}, {'name': 'BIDUPSID', 'domain': '.baidu.com', 'expiry': 3789877080, 'secure': False, 'httpOnly': False, 'value': '69D8136B54D4D5CBFCCE4DB67D709994', 'path': '/'}, {'name': 'PSTM', 'domain': '.baidu.com', 'expiry': 3789877080, 'secure': False, 'httpOnly': False, 'value': '1642393439', 'path': '/'}, {'name': 'BD_UPN', 'domain': 'www.baidu.com', 'expiry': 1643257439, 'secure': False, 'httpOnly': False, 'value': '12314353', 'path': '/'}, {'name': 'BD_HOME', 'domain': 'www.baidu.com', 'path': '/', 'secure': False, 'httpOnly': False, 'value': '1'}]
for cookie in cookie1:
driver.add_cookie(cookie)
driver.refresh()
print("add cookie then refresh")
问题现象:上述代码段最后刷新页面后还是不能登录进百度
解决方案:登录进页面后等待5秒获取登录后的cookie,否则获取的还是登录前的cookie
from selenium import webdriver from time import sleep from selenium.webdriver.support.ui import WebDriverWait driver=webdriver.Chrome() driver.get("https://www.baidu.com/") driver.maximize_window() driver.implicitly_wait(10) driver.find_element_by_xpath("(//*[text()=\"登录\"])[2]").click() driver.find_element_by_xpath("//*[text()=\"帐号登录\"]").click() driver.find_element_by_xpath("//*[@name=\"userName\"]").send_keys("183ZZZZ") driver.find_element_by_xpath("//*[@id=\"TANGRAM__PSP_11__password\"]").send_keys("aa1ZZZZZZ!") driver.find_element_by_xpath("//*[@id=\"TANGRAM__PSP_11__submit\"]").click() #***************加5秒等待页面全部加载完成 sleep(5) cookie1=driver.get_cookies() print(cookie1) driver.delete_all_cookies() driver.refresh() print("delete cookie then refresh") # cookie1=[{'name': 'BA_HECTOR', 'domain': '.baidu.com', 'expiry': 1642397039, 'secure': False, 'httpOnly': False, 'value': '2p800h2gah202h4gld1gu9rr00q', 'path': '/'}, {'name': 'BAIDUID_BFESS', 'domain': '.baidu.com', 'expiry': 1673929441, 'sameSite': 'None', 'httpOnly': False, 'secure': True, 'value': '69D8136B54D4D5CB9D4AEEBD2BB4AEE4:FG=1', 'path': '/'}, {'name': 'H_PS_PSSID', 'domain': '.baidu.com', 'path': '/', 'secure': False, 'httpOnly': False, 'value': '35105_35630_34584_35490_35701_34812_35320_26350'}, {'name': 'BAIDUID', 'domain': '.baidu.com', 'expiry': 1673929433, 'secure': False, 'httpOnly': False, 'value': '69D8136B54D4D5CB9D4AEEBD2BB4AEE4:FG=1', 'path': '/'}, {'name': 'BIDUPSID', 'domain': '.baidu.com', 'expiry': 3789877080, 'secure': False, 'httpOnly': False, 'value': '69D8136B54D4D5CBFCCE4DB67D709994', 'path': '/'}, {'name': 'PSTM', 'domain': '.baidu.com', 'expiry': 3789877080, 'secure': False, 'httpOnly': False, 'value': '1642393439', 'path': '/'}, {'name': 'BD_UPN', 'domain': 'www.baidu.com', 'expiry': 1643257439, 'secure': False, 'httpOnly': False, 'value': '12314353', 'path': '/'}, {'name': 'BD_HOME', 'domain': 'www.baidu.com', 'path': '/', 'secure': False, 'httpOnly': False, 'value': '1'}] for cookie in cookie1: driver.add_cookie(cookie) driver.refresh() print("add cookie then refresh") # sleep(3) # cookie1=driver.get_cookies() # print(cookie1)