lintest

1. 首先确认POST请求的content-type类型

2. 查看cookies数据

3. 找到对应的headers数据

4. 如果是application/json,传入的json数据需要时json数据格式

 

post请求时:res = requests.post(url, data=data,headers=headers,verify=False)

 

 

post请求时:res = requests.post(test_url,data=json.dumps(data),headers=headers)

 

 

用request获取到的cookie,传给selenium使用, 全部代码示例如下: (敏感信息****表示)

# -*- coding: utf-8 -*-
import requests
from selenium import webdriver
import json
from os.path import dirname,abspath


def get_cookielin(driver):
    test_url = "https://login.*****.link/Account/Login"
    headers = {"Content-Type": "application/json;charset=utf-8",
               "Accept": "application/json, application/xml, text/play, text/html, *.*",
               "Accept-Encoding": "gzip, deflate,br",
               "Accept-Language": "zh-CN,zh;q=0.9"}
    #根据Fiddler中content-type的类型,确认写入的data数据
    data = {"UseLoginGeetest":False,"Remember":"","Domin":"","ReturnUrl":"","UseLoginMutex":False,"MutexToken":"","LoginType":0,\
            "UserName":"linyisss100349@bsasn.com","Password":\
            "HADovxHy/k3PEyd9SYLvNfasasaa7APUh1/0IQ11WiDCop2WfcNAJkegRZc65W+FGojKjLDFUA5ziOhaM0IEyQ7sgfTfuhgxyEmLGF6rI1EU0pC2EmTrTOlRYYZIPXvW4tEIrrtfgFjX79AjAVmdoq08LmbZyNy5q76TTc="}
    #"UseLoginGeetest":False/Ture需要大写,Fiddler里面抓取的可能是小写
    res = requests.post(test_url,data=json.dumps(data),headers=headers)
    #data=json.dumps(data)需要传json格式的数据
    Tita_PC = res.cookies.get(\'Tita_PC\')  #只获取‘Tita_PC’名称的cookie内容

    cookie1 = {\'name\': \'Tita_PC\', \'value\': Tita_PC}
    driver.get(test_url)   #写入cookie之前必须driver.get(url)
    #PhantomJS报错Unable to set Cookie,通过下面的方式修改
    driver.add_cookie(
        {
            \'domain\':\'.italent.link\',
            \'name\':cookie1[\'name\'],
            \'value\':cookie1[\'value\'],
            \'path\': \'/\',
            \'expires\': None
        }
    )

    driver.get(test_url)
    shishi_url = \'https://setting-cloud.*****.link/#home\'
    driver.get(shishi_url)
    driver.implicitly_wait(10)
    driver.find_element_by_xpath(\'//*[@data-type="CloundApplication"]/span\').click()

def login():
    filepath = dirname(abspath(__file__))+\'\driver\' #__file__用于获取文件的路径,abspath(__file__)获得绝对路径;dirname()用于获取上级目录
    #print(filepath)
    driver = webdriver.Chrome(filepath+\'\chromedriver.exe\')
    driver.maximize_window()
    get_cookielin(driver)

if __name__==\'__main__\':
    login()

  

 

selenium中 WebDriver操作cookie的方法:

get_cookies(): 获得所有cookie信息。

get_cookie(name): 返回字典的key为“name”的cookie信息。

add_cookie(cookie_dict) : 添加cookie。“cookie_dict”指字典对象,必须有name 和value 值。

delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”。

delete_all_cookies(): 删除所有cookie信息。

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-05-16
  • 2022-12-23
  • 2022-12-23
  • 2021-08-17
  • 2021-09-19
  • 2022-12-23
  • 2021-11-22
猜你喜欢
  • 2021-11-11
  • 2021-08-20
  • 2021-05-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案