Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xm-uitest-sow
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiamai-test
xm-uitest-sow
Commits
53e04837
Commit
53e04837
authored
Jul 26, 2021
by
mac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
注入localStorage方法登陆
parent
e3b0db6c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
9 deletions
+36
-9
src/framework/common.py
+2
-1
src/pageobject/basepage.py
+19
-1
src/testcase/test_LoginPage.py
+15
-7
No files found.
src/framework/common.py
View file @
53e04837
...
...
@@ -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
...
...
src/pageobject/basepage.py
View file @
53e04837
...
...
@@ -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'
])
...
...
src/testcase/test_LoginPage.py
View file @
53e04837
...
...
@@ -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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment