python企业微信扫码登录

最近要做web自动化,目前我是用的python+selenium的框架来。因为公司的系统需要扫码登录企业微信账户获取授权,要不然进不了系统,就研究了下。最终的实现方式是扫码获取cookie,然后存入yaml文件。后面直接获取cookie就好。因为cookie是有有效期的,后面我问了开发,可以直接在表里更改有效期,我把它设置成永久有效,就解决复用问题啦。
下面是代码

import time

import yaml
from faker import Faker
from selenium import webdriver
from selenium.webdriver.common.by import By


class TestWeworkLogin:

    def setup_class(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(10)
        self.driver.maximize_window()

    def teardown_class(self):
        self.driver.quit()


    def test_save_cookies(self):
        """
        保存cookies
        :return:
        """
        # 1.访问企业微信的登录页面
        self.driver.get("https://work.weixin.qq.com/wework_admin/loginpage_wx")
        # 2.手机扫码
        time.sleep(10)
        # 3.获取浏览器的cookies
        cookies = self.driver.get_cookies()
        print(cookies)
        # 4.保存cookies
        with open("./cookies.yaml", "w") as f:
            yaml.safe_dump(data=cookies, stream=f)


    def test_get_cookie(self):
        """
        植入cookie跳过登录
        :return:
        """
        # 1.访问企业微信首页
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
        # 2.获取本地的cookie
        with open("./cookies.yaml", "r") as f:
            cookies = yaml.safe_load(f)
        print(cookies)
        # 3.植入cookie
        for c in cookies:
            self.driver.add_cookie(c)
        # 4.访问企业微信首页
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
        time.sleep(5)

    def test_add_member(self):
        """
        添加成员
        :return:
        """
        faker1 = Faker("zh_Cn")
        usnrname = faker1.name()
        acctid = faker1.ssn()
        mobile = faker1.phone_number()
        print(usnrname, acctid, mobile)

        # 1.访问企业微信首页
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
        # 2.获取本地的cookie
        with open("./cookies.yaml", "r") as f:
            cookies = yaml.safe_load(f)
        print(cookies)
        # 3.植入cookie
        for c in cookies:
            self.driver.add_cookie(c)
        # 4.访问企业微信首页
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")

        # 5.点击添加成员按钮
        self.driver.find_element(By.LINK_TEXT, "添加成员").click()
        # 6.输入用户名
        self.driver.find_element(By.ID, "username").send_keys(usnrname)
        # 7.输入acctid
        self.driver.find_element(By.ID, "memberAdd_acctid").send_keys(acctid)
        # 8.输入手机号
        self.driver.find_element(By.ID, "memberAdd_phone").send_keys(mobile)
        # 9.点击保存
        self.driver.find_elements(By.CSS_SELECTOR, "a.qui_btn.ww_btn.js_btn_save")[0].click()
        time.sleep(2)
        # 10.断言结果
        tips_text = self.driver.find_element(By.ID, "js_tips").text
        assert "保存成功" == tips_text
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值