web自动化10-窗口截图、验证码处理

2023-10-17 09:56:21 浏览数 (1)

窗口截图

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是什么?

  1. Cookie是由Web服务器生成的,并且保存在用户浏览器上的小文本文件,它可以包含用户相关的信息。
  2. Cookie数据格式:键值对组成(python中的字典)
  3. Cookie产生:客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器颁发一个Cookie数据
  4. 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()

0 人点赞