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

17727591462

联系电话

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

selenium-webdriver(python) -- cookie处理

更新时间:2022-05-16 09:06:00 作者:多测师 浏览:103

  通过webdriver 操作cookie 是一件非常有意思的事儿,有时候我们需要了解浏览器中是否存在了某个cookie 信息,webdriver 可以帮助我们读取、添加,删除cookie信息。

selenium-webdriver(python) -- cookie处理

  打印cookie信息

  #coding=utf-8

  from selenium import webdriver

  import time

  driver = webdriver.Chrome()

  driver.get(http://www.youdao.com)

  # 获得cookie信息

  cookie= driver.get_cookies()

  #将获得cookie的信息打印

  print cookie

  driver.quit()

  运行打印信息:

  [{u'domain': u'.youdao.com', u'secure': False, u'value': u'aGFzbG9nZ2VkPXRydWU=', u'expiry': 1408430390.991375, u'path': u'/', u'name': u'_PREF_ANONYUSER__MYTH'}, {u'domain': u'.youdao.com', u'secure': False, u'value': u'1777851312@218.17.158.115', u'expiry': 2322974390.991376, u'path': u'/', u'name': u'OUTFOX_SEARCH_USER_ID'}, {u'path': u'/', u'domain': u'www.youdao.com', u'name': u'JSESSIONID', u'value': u'abcUX9zdw0minadIhtvcu', u'secure': False}]

  对cookie的操作

  上面的方式打印了所有cookie信息表,太多太乱,我们只想有真对性的打印自己想要的信息,看下面的例子

  #coding=utf-8

  from selenium import webdriver

  import time

  driver = webdriver.Firefox()

  driver.get(http://www.youdao.com)

  #向cookie的name 和value添加会话信息。

  driver.add_cookie({'name':'key-aaaaaaa', 'value':'value-bbbb'})

  #遍历cookies中的name 和value信息打印,当然还有上面添加的信息

  for cookie in driver.get_cookies():

  print "%s -> %s" % (cookie['name'], cookie['value'])

  # 下面可以通过两种方式删除cookie

  # 删除一个特定的cookie

  driver.delete_cookie("CookieName")

  # 删除所有cookie

  driver.delete_all_cookies()

  time.sleep(2)

  driver.close()

  运行打印信息:

  YOUDAO_MOBILE_ACCESS_TYPE -> 1

  _PREF_ANONYUSER__MYTH -> aGFzbG9nZ2VkPXRydWU=

  OUTFOX_SEARCH_USER_ID -> -1046383847@218.17.158.115

  JSESSIONID -> abc7qSE_SBGsVgnVLBvcu

  key-aaaaaaa -> value-bbbb # 这一条是我们自己添加的

  通过博客园登陆来分析cookie

  #coding=utf-8

  from selenium import webdriver

  import time

  driver = webdriver.Firefox()

  driver.get(http://passport.cnblogs.com/login.aspx?ReturnUrl=http://www.cnblogs.com/fnng/admin/EditPosts.aspx)

  time.sleep(3)

  driver.maximize_window() # 浏览器全屏显示

  #通过用户名密码登陆

  driver.find_element_by_id("tbUserName").send_keys("fnngj")

  driver.find_element_by_id("tbPassword").send_keys("123456")

  #勾选保存密码

  driver.find_element_by_id("chkRemember").click()

  time.sleep(3)

  #点击登陆按钮

  driver.find_element_by_id("btnLogin").click()

  #获取cookie信息并打印

  cookie= driver.get_cookies()

  print cookie

  time.sleep(2)

  driver.close()

  运行打印信息:

  #第一次执行信息

  >>>

  [{u'domain': u'.cnblogs.com', u'name': u'.DottextCookie', u'value': u'C709F15A8BC0B3E8D9AD1F68B371053849F7FEE31F73F1292A1509

32FF09A7B0D4A1B449A32A6B24AD986CDB05B9998471A37F39C3B63

7E85E481AA986D3F8C187D7708028F9D4ED3B326B46DC43B416C47B

84D706099ED1D78B6A0FC72DCF948DB9D5CBF99D7848FDB78324', u'expiry': None, u'path': u'/', u'secure': False}]

  >>> ========================= RESTART ================================

  #第二次执行信息

  >>>

  [{u'domain': u'.cnblogs.com', u'name': u'.DottextCookie', u'value': u'5BB735CAD62E99F8CCB9331C32724E2975A0150D199F4243AD193

57B3F99A416A93B2E803F4D5C9D065429713BE8B5DB4ED760EDCBA

F492EABE2158B3A6FBBEA2B95C4DA3D2EFEADACC3247040906F1462

731F652199E2A8BEFD8A9B6AAE87CF3059A3CAEB9AB0D8B1B7AD2A', u'expiry': 1379502502, u'path': u'/', u'secure': False}]

  >>>

  第一次注释掉勾选保存密码的操作,第二次通过勾选保存密码获得cookie信息 ;来看两次运行结果的cookie的何不同:

  u'expiry': None

  u'expiry': 1379502502

  通过对比发现,不勾选保存密码时expiry 的值为none ; 那么就可以初步判断勾选保存密码的操作在cookie 中起到了作用。至于是否准确可以再做进一步的分析。

  以上内容为大家介绍了自动化测试中的selenium-webdriver(python) -- cookie处理,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部