首页 > 编程语言 > 详细

python的selenium实现自动登陆

时间:2020-02-10 19:23:30      阅读:114      评论:0      收藏:0      [点我收藏+]

知道思想,参考其他文档,python的request模块selenium模块都可以实现get_cookie()和 add_cookie()的功能。

由于现在在学习selenium自动化测试,我选用selenium的webdriver来实现。

 

  • 获取登陆的cookie
from selenium import webdriver
import time,json

url = ‘https://www.cnblogs.com/‘
driver = webdriver.Chrome()
driver.get(url)
time.sleep(30) # 在此时输入用户名和密码,先登录进网站
cookies = driver.get_cookies()
print(cookies)
f1 = open(‘cookie.txt‘,‘w‘)
f1.write(json.dumps(cookies))
f1.close()
  • 再从文件里读取cookie,加入到driver的请求中去
from selenium import webdriver
import time,json

driver = webdriver.Chrome()
driver.delete_all_cookies()

time.sleep(2)
with open(‘cookie.txt‘) as f:
cookie = json.loads(f.read())
print(cookie)

for c in cookie:
driver.add_cookie(c)
driver.get(‘https://www.cnblogs.com/‘)
居然报错了-_-||,console的内容,提示selenium.common.exceptions.InvalidCookieDomainException: Message: invalid cookie domain
查了资料,是由于在添加cookie之前没有访问网站,也就是说,需要先访问微博的某个网址,然后才能添加cookie,即添加cookie需要明确在哪个网站上添加cookie
把driver.get(‘https://www.cnblogs.com/‘)换下地方,简单调整如下。运行成功~~~
driver = webdriver.Chrome()
driver.delete_all_cookies()
driver.get(‘https://www.cnblogs.com/‘)
time.sleep(2)
with open(‘cookie.txt‘) as f:
cookie = json.loads(f.read())
print(cookie)

for c in cookie:
driver.add_cookie(c)
driver.refresh()

python的selenium实现自动登陆

原文:https://www.cnblogs.com/ppybear/p/12291848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!