zoukankan      html  css  js  c++  java
  • selenium---cookie处理

      在做web测试过程中,常常会遇到登录过程中需要滑动来进行登录,通常滑动处理起来比较麻烦,那么我们可以通过跳过这个滑动,简单方法,让开发在测试版本中屏蔽滑动模块,如果开发不愿意屏蔽的时候,我们应该怎么操作呢?前面介绍接口测试的时候,提到过,我们可以通过cookies来进行模拟登陆,跳过登陆验证,那么在做web自动化的时候能否也通过cookies来跳过登陆呢?

    cookies

    Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),一般存放在客户端上。

    cookie我们用的最多的也就是登陆了,作为用户的唯一标识,我们可以通过cookie进行绕过输入验证码的环节,就是通过selenium进行操作cookie,那么selenium对于cookie又那些操作呢?

    绕过登陆

    通过cookie绕过登陆,肯定先获取登陆cookie,老规矩打开百度,登陆按钮,查看cookie内容,选取适合的cookie

    获取到对应的cookie,这里安静介绍下如何书写cookie,cookie是成键值对显示的,也就是类似于字典的内容,

    cookie1 = {
        "domain":"xxxx",    # 服务器地址
        "name":"xxxx",    # cookie名字
        "value":"xxxxx"    # cookie值
    }

    通过上面找到需要的cookie值,然后通过上面的模式进行填写,然后通过 add_cookie() 进行添加cookie

    # coding:utf-8
    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    
    driver.get('https://www.baidu.com/')
    
    cookie1 = {
        "domain":".baidu.com",
        "name":"BAIDUID",
        "value":"xxxxx"
    }
    
    cookie2 = {
        "domain":".baidu.com",
        "name":"BDUSS",
        "value":"xxxxx"
    
    }
    driver.add_cookie(cookie_dict=cookie1)
    driver.add_cookie(cookie2)
    time.sleep(3)
    # 页面刷新
    driver.refresh()
    
    text = driver.find_element_by_xpath("//*[@class='user-name c-font-normal c-color-t']").text
    print(text)
    if text=='我在谁身旁':
        print('登录成功')
    else:
        print('登录失败')

    结果就不用给大家列了,很显然是成功的

    其他cookie操作

    有小伙伴们问,selenium操作cookie就只有这一种吗?那肯定不是的,安静继续拿着百度案例为大家解释,继续上述步骤,通过 get_cookies() 获取全部cookie,也可以通过 get_cookie() 获取指定cookie,当然也可以通过 delete_cookie(name,optionsString)  进行删除cookie

    # coding:utf-8
    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    
    driver.get('https://www.baidu.com/')
    
    cookie1 = {
        "domain":".baidu.com",
        "name":"BAIDUID",
        "value":"xxxxx"
    }
    
    cookie2 = {
        "domain":".baidu.com",
        "name":"BDUSS",
        "value":"xxxxx"
    
    }
    driver.add_cookie(cookie_dict=cookie1)
    driver.add_cookie(cookie2)
    
    time.sleep(3)
    # 页面刷新
    driver.refresh()
    # 获取全部cookies
    cookie_all = driver.get_cookies()
    print(cookie_all)
    # 获取单个cookie
    bduss_cookie = driver.get_cookie('BDUSS')
    print(bduss_cookie)

    展示下打印的cookie值

    删除的cookie安静这里没有做演示,大家可以进行练练手,熟能生巧。

    如果感觉安静写的对您有帮助,可以点个关注,持续更新中。不懂的或者有问题的可以下方留言。

  • 相关阅读:
    C#序列化效率对比
    将聚合记录集逆时针和顺时针旋转90度(行列互换)
    Sql的行列转换
    log4net配置
    input框添加阴影效果
    WCF自定义地址路由映射(不用svc文件)
    Jquery对当前日期的操作(格式化当前日期)
    用JQuery获取输入框中的光标位置
    sublime text3安装后html:5+Tab不能快速生成html头部信息的解决办法
    js获取url传递参数,js获取url?号后面的参数
  • 原文地址:https://www.cnblogs.com/qican/p/13675158.html
Copyright © 2011-2022 走看看