import json
#确保a是一个字典,而不是字符串,不然True不会转化成json的ture
a={'a':'b','c':True}
with open("json.json","w") as f:
#把python的字典转化成json,然后保存到json.json文件中
#第一个参数a是要传入的json值,第二个参数是文件对象
json.dump(a,f)
with open("json.json","r") as f:
#把文件中的json转化成dict类型,第一个参数传文件对象
#会把json的true转化成dict的True
b=json.load(f)
print(b)
from typing import List, Dict
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
import pytest
import json
class TestChains():
def setup(self):
#创建一个选项options
opt=webdriver.ChromeOptions()
#创建一个远程ip端口9222
opt.debugger_address="127.0.0.1:1222"
def teardown(self):
self.driver.quit()
def test_get_cookies(self):
self.driver=webdriver.Chrome(opt)
#获取当前登录之后的微信页面的cookies
cookies=self.driver.get_cookies()
with open("cookies.txt","w") as f:
#dump方法把cookies存到文件cookies.txt中
json.dump(cookies,f)
def test_weixin(self):
self.driver=webdriver.Chrome()
#先打开企业微信的页面,才能传cookies进去
self.driver.get("https://work.weixin.qq.com/")
with open("cookies.txt","r") as f:
#从文件获取cookies,并转化成list对象
cookies:List[Dict]=json.load(f)
#遍历每一条cookies,把登录的cookies传入到企业微信中
for cookie in cookies:
#由于selenium的cookies不支持expiry,所以需要去掉
if "expiry" in cookie.keys():
#dict支持pop的删除函数
cookie.pop("expiry")
#添加cookies
self.driver.add_cookie(cookie)
#再打开企业微信登录后的页面
self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
sleep(5)
使用sleep的方法获取cookies
运行test_weixin_sleep方法
手机马上扫码,运行完test_weixin_sleep方法获取cookies
再运行test_weixin,就可以跑用例了
from typing import List, Dict
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
import pytest
import json
class TestChains():
def setup(self):
self.driver=webdriver.Chrome()
def teardown(self):
self.driver.quit()
def test_weixin_sleep(self):
self.driver.get("https://work.weixin.qq.com/wework_admin/loginpage_wx?from=myhome")
sleep(30)
cookies=self.driver.get_cookies()
with open("cookies.txt","w") as f:
json.dump(cookies,f)
def test_weixin(self):
#先打开企业微信的页面,才能传cookies进去
self.driver.get("https://work.weixin.qq.com/")
with open("cookies.txt","r") as f:
#从文件获取cookies,并转化成list对象
cookies:List[Dict]=json.load(f)
#遍历每一条cookies,把登录的cookies传入到企业微信中
for cookie in cookies:
#由于selenium的cookies不支持expiry,所以需要去掉
if "expiry" in cookie.keys():
#dict支持pop的删除函数
cookie.pop("expiry")
#添加cookies
self.driver.add_cookie(cookie)
#再打开企业微信登录后的页面
self.driver.get("https://work.weixin.qq.com/wework_admin/frame")
sleep(5)