8.selenium窗口截屏和验证码操作

一、窗口截图

目的:

当程序运行出错时,通过截图文件能够更直观的知道具体是哪个操作步骤出错

把图片保存至指定位置:

截图方法:driver.get_screenshot_as_file(filename)

截图的文件名必须是以PNG结尾

filename中的文件目录必须手动创建

from selenium import webdriver
dr = webdriver.Chrome()
dr.get(r'https://www.baidu.com/')
try:
    # 在搜索框输入123
    dr.find_element_by_id('kw').send_keys('123')
    # 点击‘百度一下’按钮
    dr.find_element_by_id('suu').click()
except Exception as e:
    # 截图
    dr.get_screenshot_as_file('error.png')
    raise e
dr.quit()

二、验证码处理

2.1 定义

验证码就是指一种随机生成的信息(数字、字母、汉字、图片、算术题)等为了防止恶意的请求行为,增加应用的安全性。

自动化过程中也是需要进行注册或者登陆的操作,所以需要处理验证码。

2.2 处理方式

  • 去掉验证码 由开发操作 , 用在测试环境

  • 设置万能验证码 由开发操作, 一般也只使用在测试环境,

  • 验证码识别技术 由于技术难度高,识别率很难达到100%, 一般不建议使用

  • 记录COOKIE 通过记录cookie来跳过登陆的操作。

2.3 selenium操作cookie

driver.get_cookie(name) 获取指名称的cookie信息 返回的是一个字典

driver.get_cookies() 获取的是所有cookie的信息, 返回的是一个列表

driver.add_cookie(dict_cookie) 往浏览器驱动增加cookie, dict_cookie是一字典

import time
from selenium import webdriver
dr = webdriver.Chrome()
dr.get('https://www.baidu.com/')
dr.maximize_window()
# 打印所有cookie
print('all:', dr.get_cookies())
# 指定名称打印
print('BAIDUID', dr.get_cookie('BAIDUID'))
dict_cookie = {
    'name':'BDUSS',
    'value':'lMzeDBtQUN0bUJ•SkJZcVJrNUNb2E-tG9hW'
}
time.sleep(5)
# 添加到浏览器cookie中
dr.add_cookie(dict_cookie)
dr.refresh()
time.sleep(5)
dr.quit()

注意事项:如何确认哪个cookie是用来控制用户权限的

可以问开发同学

针对登陆的前后的cookie进行对比,比登陆之前多的cookie都可以用来使用控制用户权限。

手动登陆之后不能退出,退出之后就相当于cookie无效了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值