多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

如何使用Selenium添加Cookie实现绕过登录流程-自动化测试

更新时间:2022-03-14 09:44:39 作者:多测师 浏览:409

  有些简单的网站我们可以简单的send key来输入账户密码就可以登录,但是有很多网站需要验证码之类的就不太好用了,这时候就体现到了cookie登录的优点了。

如何使用Selenium添加Cookie实现绕过登录流程-自动化测试

  创建demo.py

  from selenium import webdriver

  import time

  import json

  #填写webdriver的保存目录

  driver = webdriver.Chrome('../chromedriver.exe')

  #记得写完整的url 包括http和https

  driver.get('https://www.baidu.com')

  #程序打开网页后20秒内手动登陆账户

  time.sleep(30)

  with open('cookies.txt','w') as cookief:

  #将cookies保存为json格式

  cookief.write(json.dumps(driver.get_cookies()))

  driver.close()

  创建demo2.py

  from selenium import webdriver

  import time

  import json

  #填写webdriver的保存目录

  driver = webdriver.Chrome()

  #记得写完整的url 包括http和https

  driver.get('https://www.baidu.com')

  #首先清除由于浏览器打开已有的cookies

  driver.delete_all_cookies()

  with open('cookies.txt','r') as cookief:

  #使用json读取cookies 注意读取的是文件 所以用load而不是loads

  cookieslist = json.load(cookief)

  for cookie in cookieslist:

  driver.add_cookie(cookie)

  # 刷新页面

  driver.refresh()

  解决Cookie时效性字段

  from selenium import webdriver

  import json

  #填写webdriver的保存目录

  driver = webdriver.Chrome('../chromedriver.exe')

  #记得写完整的url 包括http和https

  driver.get('https://www.baidu.com')

  #首先清除由于浏览器打开已有的cookies

  driver.delete_all_cookies()

  with open('cookies.txt','r') as cookief:

  #使用json读取cookies 注意读取的是文件 所以用load而不是loads

  cookieslist = json.load(cookief)

  # 方法1 将expiry类型变为int

  for cookie in cookieslist:

  #并不是所有cookie都含有expiry 所以要用dict的get方法来获取

  if isinstance(cookie.get('expiry'), float):

  cookie['expiry'] = int(cookie['expiry'])

  driver.add_cookie(cookie)

  driver.refresh()

  import time

  import json

  #填写webdriver的保存目录

  driver = webdriver.Chrome('../chromedriver.exe')

  #记得写完整的url 包括http和https

  driver.get('https://www.baidu.com')

  #程序打开网页后20秒内手动登陆账户

  time.sleep(30)

  with open('cookies.txt','w') as cookief:

  #将cookies保存为json格式

  cookief.write(json.dumps(driver.get_cookies()))

  driver.close()

  以上内容为大家介绍了自动化测试中的如何使用Selenium添加Cookie实现绕过登录流程,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部