项目开展接口自动化,由于是sso单点登录,几番尝试使用接口登录获取token无果,决定使用UI自动化登录后获取登录token,方法如下:
代码实现如下:
import time from selenium import webdriver class GetToken(object): def __init__(self): self.driver = webdriver.Chrome() def login(self): self.driver.get('http://122.224.230.26:20054/login') self.driver.maximize_window() self.driver.implicitly_wait(10) # 登录输入用户名,密码 self.driver.find_element_by_id('username').send_keys('用户名') self.driver.find_element_by_id('password').send_keys('密码') self.driver.find_element_by_xpath('登录按钮').click() # 等待3秒,待session和token都成功返回并存到浏览器中 time.sleep(3) data = self.driver.get_cookies() cookie_data = [item["name"] + "=" + item["value"] for item in data] cookie = ';'.join(item for item in cookie_data) # print(cookie) return cookie # 关闭浏览器 def close_browser(self): self.driver.quit() if __name__ == '__main__': gt = GetToken() gt.login() gt.close_browser()