51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1248|回复: 0
打印 上一主题 下一主题

[转贴] web自动化测试的登录处理

[复制链接]
  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 1042 天

    连续签到: 4 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-3-2 09:52:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    一.复用已有浏览器
      应用场景:登录页面需要用户进行扫码登录的。
      1.推出当前所有的[url=]谷歌[/url]浏览器。
      2.找到chrome的启动路径,并配置到环境变量中。
      3.启动命令:
      windows :  chrome --remote-debugging-port=9222
      mac:Chrome --remote-debugging-port=9222
      4.访问http://localhost:9222/
      5.在需要扫码登录的页面上,先自己扫码登录,然后再用代码打开其它的页面。
      代码如下:
    1.  def test_multiplex_browser(self):
    2.       """复用已有浏览器,只有chrome支持remote debug
    3.       """
    4.       chrome_option=webdriver.ChromeOptions()
    5.       chrome_option.debugger_address='127.0.0.1:9222'
    6.       self.driver=webdriver.Chrome(options=chrome_option)
    7.       self.driver.get('https://work.weixin.qq.com/wework_admin/frame')
    8.       self.driver.find_element_by_id('menu_contacts').click()
    复制代码
    二.使用cookie
      应用场景:使用用户已经登录后的cookie或者开发给的一个长期cookie。
      1.先登录,获取到cookie。
      2.用获取到的cookies来打开其它的页面。
    1. def test_cookie(self):
    2.           self.driver = webdriver.Chrome()
    3.           self.driver.get('https://work.weixin.qq.com/wework_admin/frame')
    4.           cookies=[{'domain': '.work.weixin.qq.com', 'httpOnly': True, 'name': 'wwrtx.vst', 'path': '/', 'secure': False, 'value': 'uQYEE9pmrAqMiqGgH-HuvOud8iyrDYT6-cYK3Knu48wyxlGHPBsPgQ5V3jlJ_94sQuWkqZsCRgBbLSFoPIkZ3rBxAScq26xVg7v23I93ZHnAxsmC1toQaPwTbWL6M8d75iuVx5ogoSVldUStEfijHIH27f0Ibg8AQGVZrE5vpAOzuYG24q6MNNerfYZji7bIY3X38T2_D_k1yC8KJ5IOnnh_AJvOTE9vhdXWJS52y0yBWv-4tbPegBYl6CE-oyVGD1kw-D6NtbBwTixg1IJMbg'}, {'domain': '.work.weixin.qq.com', 'httpOnly': False, 'name': 'wxpay.vid', 'path': '/', 'secure': False, 'value': '1688850993086434'}, {'domain': '.work.weixin.qq.com', 'httpOnly': True, 'name': 'wwrtx.ltype', 'path': '/', 'secure': False, 'value': '1'}, {'domain': '.work.weixin.qq.com', 'httpOnly': True, 'name': 'wwrtx.sid', 'path': '/', 'secure': False, 'value': 'jlKkDPAbw-_2ajHbVc45AmN68pp03_uipXmsHyt2Uib9jR_V4jU49zFt-UNlTvPH'}, {'domain': '.work.weixin.qq.com', 'httpOnly': False, 'name': 'wwrtx.d2st', 'path': '/', 'secure': False, 'value': 'a9782796'}, {'domain': '.work.weixin.qq.com', 'expiry': 1634125372, 'httpOnly': False, 'name': 'Hm_lvt_9364e629af24cb52acc78b43e8c9f77d', 'path': '/', 'secure': False, 'value': '1602468735,1602471614,1602471704,1602589372'}, {'domain': '.work.weixin.qq.com', 'httpOnly': True, 'name': 'wwrtx.refid', 'path': '/', 'secure': False, 'value': '3114847352240073'}, {'domain': '.work.weixin.qq.com', 'httpOnly': True, 'name': 'wwrtx.ref', 'path': '/', 'secure': False, 'value': 'direct'}, {'domain': '.qq.com', 'expiry': 1602589571, 'httpOnly': False, 'name': '_gat', 'path': '/', 'secure': False, 'value': '1'}, {'domain': 'work.weixin.qq.com', 'expiry': 1602606023, 'httpOnly': True, 'name': 'ww_rtkey', 'path': '/', 'secure': False, 'value': '3rs16jl'}, {'domain': '.qq.com', 'expiry': 1602675911, 'httpOnly': False, 'name': '_gid', 'path': '/', 'secure': False, 'value': 'GA1.2.1418420518.1602574488'}, {'domain': '.work.weixin.qq.com', 'expiry': 1605181511, 'httpOnly': False, 'name': 'wwrtx.i18n_lan', 'path': '/', 'secure': False, 'value': 'zh'}, {'domain': '.work.weixin.qq.com', 'httpOnly': False, 'name': 'wxpay.corpid', 'path': '/', 'secure': False, 'value': '1970325124167270'}, {'domain': '.qq.com', 'expiry': 1917932908, 'httpOnly': False, 'name': 'pac_uid', 'path': '/', 'secure': False, 'value': '0_3062c037b13a1'}, {'domain': '.qq.com', 'expiry': 2147385600, 'httpOnly': False, 'name': 'pgv_pvid', 'path': '/', 'secure': False, 'value': '8967897655'}, {'domain': '.work.weixin.qq.com', 'httpOnly': False, 'name': 'Hm_lpvt_9364e629af24cb52acc78b43e8c9f77d', 'path': '/', 'secure': False, 'value': '1602589372'}, {'domain': '.qq.com', 'expiry': 1665661511, 'httpOnly': False, 'name': '_ga', 'path': '/', 'secure': False, 'value': 'GA1.2.730538557.1602467204'}, {'domain': '.work.weixin.qq.com', 'httpOnly': False, 'name': 'wwrtx.vid', 'path': '/', 'secure': False, 'value': '1688850993086434'}, {'domain': '.work.weixin.qq.com', 'expiry': 1634003013, 'httpOnly': False, 'name': 'wwrtx.c_gdpr', 'path': '/', 'secure': False, 'value': '0'}]
    5.           for cookie in cookies:
    6.               self.driver.add_cookie(cookie)
    7.           self.driver.get('https://work.weixin.qq.com/wework_admin/frame')
    8.           self.driver.find_element_by_id('menu_contacts').click()
    9.           time.sleep(5)
    复制代码
    也可以用shelve(相当于一个小型的数据库)来存放获取到cookie。

    1. db=shelve.open('cookies')
    复制代码



    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-11 01:11 , Processed in 0.069059 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表