窗口截图
1、是什么
说明:把当前操作的页面,截图保存到指定位置
2、代码中怎么使用?
说明:在Selenium中,提供了截图方法,我们只需要调用即可
方法: driver.get_screenshot_as_file(imgpath) imgpath:图片保存路径
注意事项:
1、默认使用png格式,.jpg可以使用,但是会有警告
2、指定图片存放文件路径,需要先手动创建文件夹
3、直接看需求:
代码语言:javascript复制打开微博首页,完成以下操作
1). 点击立即注册,填写注册信息手机、密码、生日
2). 截图保存
cookie
1、验证码:
一种随机生成的信息(数字、字母、汉字、图片、算术题)等为了防止恶意的请求行为,增加应用的安全性。
2、验证码的处理方式:
方式:
1). 去掉验证码
(测试环境下-采用)
2). 设置万能验证码
(生产环境和测试环境下-采用)
3). 验证码识别技术
(通过Python-tesseract来识别图片类型验证码;识别率很难达到100%)
4). 记录cookie
(通过记录cookie进行跳过登录)
3、 cookie是什么?
- Cookie是由Web服务器生成的,并且保存在用户浏览器上的小文本文件,它可以包含用户相关的信息。
- Cookie数据格式:键值对组成(python中的字典)
- Cookie产生:客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器颁发一个Cookie数据
- Cookie使用:当浏览器再次请求该网站时,浏览器把请求的数据和Cookie数据一同提交给服务器,服务器检查该Cookie,以此来辨认用户状态。
4、selenium操作cookie
说明:Selenium中对cookie操作提供相应的方法
方法:
1. get_cookie(name) --> 获取指定cookie
name:为cookie的名称
2. get_cookies() --> 获取本网站所有本地cookies
3. add_cookie(cookie_dict) --> 添加cookie
cookie_dict: 一个字典对象,必选的键包括:"name" and "value"
4、看需求:
代码语言:javascript复制需求:使用cookie实现跳过登录
1). 手动登录百度,获取cookie
2). 使用获取到的cookie,达到登录目的,然后就可以执行登录之后的操作
解决:
代码语言:javascript复制from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
driver.add_cookie({'name':'BDUSS','value':'根据实际填写'})
time.sleep(3)
driver.refresh()
time.sleep(3)
driver.quit()