Commit 53e04837 by mac

注入localStorage方法登陆

parent e3b0db6c
......@@ -94,7 +94,8 @@ def get_token(user):
url = "https://gateway.xiaomai5.com/hades/anon/hades/login?storeId=null&token=null&storeUserId=null&userId=null"
r = requests.post(url=url, data=data, headers=headers)
try:
xmtoken = r.json()["result"]["xmToken"]
# xmtoken = r.json()["result"]["xmToken"]
xmtoken = r.json()["result"]
except Exception as e:
return r.json()["message"]
return xmtoken
......
......@@ -2,6 +2,7 @@ from time import sleep
import platform
from config import readConfig
from src.framework.common import get_token
# pages基类
from selenium.webdriver.common.action_chains import ActionChains
......@@ -78,6 +79,9 @@ class Page(object):
def sleep(self, seconds):
return sleep(seconds)
def refresh(self):
return self.driver.refresh()
# 查找文本,点击该文本元素
def click_text(self, ele):
self.click((By.XPATH, """//span[text()="{}"]""".format(ele)))
......@@ -164,6 +168,12 @@ class Page(object):
def excute_script_click(self, loc):
self.driver.execute_script("document.getElementsByClassName('{}')[0].click()".format(loc))
def excute_script_set_token(self, loc, ele):
self.driver.execute_script("""window.localStorage.setItem("{}", "{}")""".format(loc, ele))
def excute_script_set_url(self):
self.driver.execute_script("XMHistory.push({pathname: `/home`,})")
# 切换窗口,切换到存在loc元素的窗口
def change_window(self, loc):
driver = self.driver
......@@ -193,12 +203,20 @@ class Page(object):
# login_page.click_text(env)
# 旧的登录方法
login_page.click(phone_login)
# login_page.click(phone_login)
# 新的登录方法
# 执行脚本,隐藏的手机号码输入框弹出
# login_page.excute_script_dominance("form xm_phone_login")
# login_page.sleep(2)
# 方法3,注入localStorage
enterpriseId = readConfig.test_header(user)['enterpriseId']
get_localStorage = get_token(user)
login_page.excute_script_set_token("xmykt-client_token", get_localStorage['xmToken'])
login_page.excute_script_set_token("xmykt-client_enterpriseId", enterpriseId)
login_page.excute_script_set_token("xmykt-client_userId", get_localStorage['userId'])
login_page.excute_script_set_url()
login_page.sleep(1)
login_page.input_text(account_input, readConfig.test_header(user)['username'])
login_page.input_text(password_input, readConfig.test_header(user)['password'])
......
......@@ -4,6 +4,7 @@ import pytest
from src.pageobject.loginpage import LoginPage
from src.framework.logger import Logger
from src.framework.appDriver import get_app_driver
from src.framework.common import get_token
from config import readConfig
......@@ -14,8 +15,10 @@ class TestLoginPage(object):
self.logger = Logger('login page').getlog()
self.account = readConfig.test_header(self.user)['username']
self.password = readConfig.test_header(self.user)['password']
self.enterpriseId = readConfig.test_header(self.user)['enterpriseId']
cloud_class_location = readConfig.test_location()
self.env = readConfig.get_env()
self.get_localStorage = get_token(self.user)
# 指定客户端的本地路径,在/config/config.ini配置
self.driver = get_app_driver(cloud_class_location)
yield self.driver
......@@ -28,16 +31,21 @@ class TestLoginPage(object):
login_page.sleep(1)
# 执行脚本,隐藏的手机号码输入框弹出
# login_page.phone_input_execute_script()
login_page.click_phone_login()
login_page.input_account(account=self.account)
login_page.input_password(password=self.password)
login_page.excute_script_set_token("xmykt-client_token", self.get_localStorage['xmToken'])
login_page.excute_script_set_token("xmykt-client_enterpriseId", self.enterpriseId)
login_page.excute_script_set_token("xmykt-client_userId", self.get_localStorage['userId'])
login_page.excute_script_set_url()
login_page.sleep(1)
# login_page.refresh()
# login_page.click_phone_login()
# login_page.input_account(account=self.account)
# login_page.input_password(password=self.password)
# login_page.get_env_window()
# login_page.click_what('span', 'text()', self.env)
# login_page.click_close_env_window()
login_page.click_login()
login_page.sleep(2)
login_page.click_text("取 消")
login_page.sleep(3)
# login_page.click_login()
# login_page.click_text("取 消")
# 校验是否存在店铺名称的元素
assert login_page.ifElementExist(login_page.store_name)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment