selenium利用cookies实现自动登录

简介: selenium利用cookies实现自动登录

原理很简单,首先手动完成登录后,把cookies保存到本地,下次再把cookies注入到浏览器里面,就自动实现了登录


最近在学习写python的自动化脚本,但是发现测试工具打开之后的网页是没有用户自己打开浏览器时记录的cookie,简单来说也就是打开的网站不会自己登录,所以想要简单的实现下如何用cookie来登录

总的来说分两步

cookies是用户的凭证,只要有cookies这一串字符串,服务器那头就能识别是哪个用户。

第一步,把cookies保存到本地

from selenium import webdriver
import json
### 下面是chromedriver路径,自己填
browser = webdriver.Chrome("###########")
### 打开要自动登录的网站,比如说csdn
browser.get("https://www.csdn.net/")
###手动完成登录后,随便在控制台输入内容,就保存下来了
input("等待登录成功,登录成功后随便输入内容。")
dictCookies = browser.get_cookies()
jsonCookies = json.dumps(dictCookies)
with open('cookies.txt', 'w') as f:
    f.write(jsonCookies)
print('cookies保存成功!')

下次启动就能实现自动登录了

第二步,把保存到本地的cookies注入到浏览器里面

首先要清楚网站的domain是什么,去cookies里面找

from selenium import webdriver
import json
### 下面是chromedriver路径,自己填
browser = webdriver.Chrome("###########")
### 打开要自动登录的网站
browser.get("https://www.csdn.net/")
with open(name, 'r', encoding='utf8') as f:
    listCookies = json.loads(f.read())
for cookie in listCookies:
    cookie_dict = {
        ### 这个domain看cookies第一个字段就知道了,需要找到并填入
        'domain': '########',
        'name': cookie.get('name'),
        'value': cookie.get('value'),
        "expires": '',
        'path': '/',
        'httpOnly': False,
        'HostOnly': False,
        'Secure': False
        }
    browser.add_cookie(cookie_dict)
    # browser.refresh()  # 刷新网页,cookies才成功
browser.get("https://www.csdn.net/")

这样最后启动的浏览器就能自动登录了

相关文章
|
10月前
|
Web App开发
selenium自动登录某宝
selenium自动登录某宝
|
数据安全/隐私保护 Python
selenium实现自动登录B站
selenium实现自动登录B站
selenium实现自动登录B站
python+selenium 通过添加cookies或token解决网页上验证码登录问题
cookie或token可以保存登录信息,当我们拿到cookie后,可以通过向浏览器发送cookie中记录的数据,直接变成登录状态,不需要再登录。
1913 0
|
1天前
|
XML 存储 测试技术
《手把手教你》系列基础篇(七十四)-java+ selenium自动化测试-框架设计基础-TestNG实现DDT - 上篇(详解教程)
【6月更文挑战第15天】本文介绍了TestNG的数据驱动测试(Data Driven Testing, DDT)概念和好处,并提供了两个实战示例。数据驱动测试允许使用不同的测试数据执行相同的测试用例,这些数据可以从外部文件或数据库获取。这种方法提高了测试效率,减少了冗余代码,并便于应对应用程序变更。
8 0
|
2天前
|
Web App开发 XML 安全
《手把手教你》系列基础篇(七十三)-java+ selenium自动化测试-框架设计基础-TestNG实现启动不同浏览器(详解教程)
【6月更文挑战第14天】本文介绍了如何使用TestNg进行自动化测试,特别是通过变量参数启动不同浏览器的步骤。
14 5
|
3天前
|
监控 Java 测试技术
《手把手教你》系列基础篇(七十二)-java+ selenium自动化测试-框架设计基础-TestNG简单介绍(详解教程)
【6月更文挑战第13天】本文介绍了TestNG单元测试框架,它是一个灵感来源于JUnit和NUnit的测试框架,支持多种级别的测试,如单元测试、集成测试等。TestNG的特点包括丰富的注解、数据驱动测试、变量支持、自动生成HTML测试报告等。与JUnit和NUnit相比,TestNG在某些功能上更为强大。文章还详细讲解了如何在Eclipse中安装TestNG插件,提供了在线安装、更新站点安装和离线安装三种方法,并展示了安装成功的验证步骤。最后,通过一个项目实战案例展示了如何使用TestNG编写和运行测试代码。
13 2
|
4天前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(七十一)-java+ selenium自动化测试-自定义类解决元素同步问题(详解教程)
【6月更文挑战第12天】本文介绍了如何创建一个自定义类库来解决自动化测试中的元素同步问题。作者指出,大部分错误源于元素因时间不同步而引发,为此提供了一种解决方案。在项目实践中,首先在`library`包下创建名为`MyWait`的类,包含一个方法`isElementPresent`,该方法通过循环尝试并等待指定元素出现,避免了直接使用时间等待可能导致的不准确性。之后,在测试类中调用此自定义方法,成功实现了元素同步。代码示例展示了如何在Java+Selenium自动化测试中应用这个自定义类。
27 2
|
5天前
|
XML Web App开发 Java
《手把手教你》系列技巧篇(七十)-java+ selenium自动化测试-Java中如何读取properties配置文件内容(详解教程)
【6月更文挑战第11天】本文介绍了Java自动化测试中读取properties配置文件的方法。文章首先说明了为何要将配置参数放在properties文件中,然后简述了properties文件的作用和常用的读取方式,包括通过`java.util.Properties`类和`java.util.ResourceBundle`类。接着详细列举了`Properties`类的主要方法,如`getProperty()`、`load()`、`setProperty()`和`store()`等。
14 1