在Web自动化中,我们经常涉及到用户登录,如果执行每个测试用例都打开登录页面,会产生大量重复代码

这里写目录标题

  • 一、获取当前登录用户的cookies
  • 二、使用cookies登录

一、获取当前登录用户的cookies

1.1 先通过复用浏览器获(前提是已经打开目标网址,并登录)

    def setup(self):# 复用浏览器的代码chrome_options = Options()chrome_options.debugger_address = "127.0.0.1:9222"self.driver = webdriver.Chrome(options=chrome_options)

1.2 取当前登录用户的cookies:driver.get_cookies,并打印出来

    def test_cookie(self):# 复用浏览器获取当前页面的cookies,get_cookies()方法获取cookies = self.driver.get_cookies()print(cookies)

二、使用cookies登录

2.1 打开需要使用cookies的网址,将之前获得的cookies以变量形式保存
2.2 将cookies保存到浏览器中,方法 driver.add_cookie() ,然后重新打开带有cookies的网址
2.3 操作需要登录才能操作的功能

def setup(self):# 不复用浏览器,启动一个新的浏览器self.driver = webdriver.Chrome()self.driver.maximize_window()self.driver.implicitly_wait(5)def test_cookie(self):# 打开企业微信管理首页,这时候要求登录self.driver.get("https://work.weixin.qq.com/wework_admin/frame#index")# 带有登录信息的cookiecookies = [{'domain': 'xxx', 'httpOnly': False, 'name': 'xxx', 'path': '/', 'secure': False,'value': 'xxx'},.......]# 将cookie加入到浏览器中for cookie in cookies:if 'expiry' in cookie.keys():cookie.pop("expiry")self.driver.add_cookie(cookie)# 重新打开已带有cookie信息的微信管理首页,进行后续操作self.driver.get("https://work.weixin.qq.com/wework_admin/frame#index")# 定位“导入通讯录”,导入数据self.driver.find_element(By.CSS_SELECTOR, ".index_service_cnt_itemWrap:nth-child(2)").click()file_button = self.driver.find_element(By.ID, "js_upload_file_input")file_button.send_keys("./datas/contacts.xlsx")assert "contacts.xlsx" == self.driver.find_element(By.ID, "upload_file_name").text

说明:cookie中的过期时间是一个时间戳,可能是浮点数,cookie不支持浮点数,会报错,所以将过期时间移除·

Web UI自动化中使用cookies登录相关推荐

  1. Web UI自动化(selenium+java)

    [郑大钱呀][公][众][号],我们一起交流,一起学习. 文章目录 声明 自动化开发环境搭建 环境准备 浏览器驱动下载 IDEA 创建Maven项目 selenium初探 Selenium元素定位 B ...

  2. PO设计模式在 UI 自动化中的实践

    PO的思想最早是2013年由IT大佬Martin Flower提出的: https://martinfowler.com/bliki/PageObject.html 没错,就是他 - 没错,就是他 - ...

  3. Web UI自动化之Excel用例读取

    基于Selenium的Web UI自动化实现(java) 本文讲解了如何从 Excel 表格中读取测试用例并在 TestNG 中执行.使用的例子是打开百度首页,输入用户名和密码,完成登录. Excel ...

  4. 在Spring MVC Web应用程序中添加社交登录:单元测试

    Spring Social 1.0具有spring-social-test模块,该模块为测试Connect实现和API绑定提供支持. 该模块已从Spring Social 1.1.0中删除,并由 Sp ...

  5. LuckyFrameWeb测试平台(一款支持接口自动化、WEB UI自动化、APP自动化,并且支持分布式测试的全纬度免费开源测试平台)

    官网:luckyframe.cn 源码地址:https://gitee.com/seagull1985/LuckyFrameWeb 分布式测试:使用Web-Client的方式,Web端负责基本信息管理 ...

  6. Web UI自动化录制工具-Selenium IDE

    Web UI自动化录制工具-Selenium IDE 简介 安装 使用 实例 关于Run for pytest... 简介 Selenium IDE可以对网页行为进行录制.回放自动执行测试步骤,最新版 ...

  7. 在Spring MVC Web应用程序中添加社交登录:集成测试

    我已经写了关于为使用Spring Social 1.1.0的应用程序编写单元测试的挑战,并为此提供了一种解决方案 . 尽管单元测试很有价值,但是它并不能真正告诉我们我们的应用程序是否正常运行. 这就是 ...

  8. UI 自动化中的分层设计

    背景 2,3 年前更写过一些 UI 自动化的相关文章, 包括一些设计原则,怎么设计划分页面封装, 常用的设计模式等. 但是没有详细描述 UI 自动化中的分层理念, 赶上最近在新项目里做 UI 自动化测 ...

  9. Web UI自动化框架搭建

    本篇博文只从项目架构角度,提供一些建议供参考.不涉及具体代码编写.目前市场上主流的免费开源工具就是Selenium.大家可以根据自己项目技术栈,选择合适的语言+外加Unit Test框架,来构建自己的 ...

最新文章

  1. 24组8K真实路面材质贴图素材 VizPeople – Pavement Textures V1
  2. java 实现hashmap_Java集合(十)实现Map接口的HashMap
  3. Python两个内置函数——locals 和globals
  4. mysql中如何操作字符串_mysql 字符串操作
  5. python语句-浅谈 Python 的 with 语句
  6. 微信小程序之坦克大战学习
  7. CentOS6.x下,tomcat - web项目部署
  8. 13个美国大学生最常用的社交网络
  9. AudioBuffer
  10. 转载--ASP解决AJAX带来的码问题
  11. 使用 Request.QueryString 接受参数时,跟编码有关的一些问题
  12. Wannafly交流赛1: C. 腰带图(瞎搞)
  13. gameloft java 游戏_每一款JAVA游戏都是经典,但只有四款游戏,是90%玩家从小玩到大...
  14. python udp socket通信
  15. CPU cache侧信道攻击
  16. FPGA 38译码器
  17. SAP ABAP openSQL数据库操作(四)
  18. 自动写作ai-自动写作神器
  19. 左边是地狱右边也是地狱_像我这样的设计师的特别地狱
  20. Windows上哪款卸载软件最值得推荐?

热门文章

  1. Linux驱动之等待队列
  2. 记录js定时器产生 Deferred long-running timer task(s) to improve scrolling smoothness
  3. 微星Z370M主板参数
  4. 回车符号和换行符号的区别
  5. JAVA生成word中有Excel文档
  6. 迭代瀑布不是Scrum
  7. 罗切斯特大学计算机博士,罗切斯特大学生物博士排名,千万得慎重点看清
  8. 【Pandas学习】多条件筛选DataFrame
  9. 梅开二度宋分题——Java实现登录 和 信息录入功能
  10. 一个适合初学者的Ant教程