Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
test
autotest-airtest-web-sc-airtest
Commits
fc81126b
Commit
fc81126b
authored
1 year ago
by
齐 振鋆
Browse files
Options
Download
Email Patches
Plain Diff
更新打开菜单方式,优化执行js公共方法
parent
7d37b589
main
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
page/GuKeYiTiHua/Public/menu.py
+5
-4
page/GuKeYiTiHua/Public/menu.py
page/GuKeYiTiHua/Public/orderDetailPage.py
+14
-3
page/GuKeYiTiHua/Public/orderDetailPage.py
unit/public/UI/BasePage.py
+5
-3
unit/public/UI/BasePage.py
with
24 additions
and
10 deletions
+24
-10
page/GuKeYiTiHua/Public/menu.py
+
5
-
4
View file @
fc81126b
...
...
@@ -2,7 +2,6 @@
# 作者:齐振鋆
# 日期:2022/9/23
import
logging
import
allure
from
unit.public.UI.BasePage
import
BasePage
...
...
@@ -16,6 +15,8 @@ class MenuElement(BasePage):
second_menu
=
"//div[contains(@class, 'third-menu') and @navname='{}']/ancestor::div[@class='sec-menu']"
.
format
(
last_menu_name
)
third_menu
=
"//div[contains(@class, 'third-menu') and @navname='{}']"
.
format
(
last_menu_name
)
self
.
move_to_element
(
first_menu
)
self
.
move_to_element
(
second_menu
)
self
.
click
(
third_menu
)
if
self
.
wait_element
(
third_menu
)
else
self
.
click
(
second_menu
)
# self.move_to_element(first_menu)
# self.move_to_element(second_menu)
# self.click(third_menu) if self.wait_element(third_menu) else self.click(second_menu)
self
.
js
(
"arguments[0].click();"
,
self
.
get_element
(
third_menu
))
if
self
.
wait_element
(
third_menu
)
else
self
.
js
(
"arguments[0].click();"
,
self
.
get_element
(
second_menu
))
This diff is collapsed.
Click to expand it.
page/GuKeYiTiHua/Public/orderDetailPage.py
+
14
-
3
View file @
fc81126b
...
...
@@ -3,10 +3,10 @@
# 日期:2023/2/14
# 描述:
import
logging
import
pytest
from
time
import
sleep
import
pytest
from
page.GuKeYiTiHua.Public.errorMsg
import
ErrorMessage
from
page.GuKeYiTiHua.Public.table
import
Table
from
unit.public.UI.BasePage
import
BasePage
...
...
@@ -26,6 +26,7 @@ class OrderDetailMain(BasePage):
self
.
click
(
"//*[text()='{}']"
.
format
(
tap_name
))
def
text_input_item
(
self
,
name
,
text
,
enter
=
False
,
get
=
False
):
"""输入框元素"""
log
.
info
(
'【{}】输入:{}'
.
format
(
name
,
text
))
text_input
=
"//*[string()='{}']/following-sibling::div//input"
.
format
(
name
)
if
get
is
True
:
...
...
@@ -36,6 +37,7 @@ class OrderDetailMain(BasePage):
self
.
em
.
check_message
()
def
text_area_item
(
self
,
name
,
text
):
"""输入域元素"""
log
.
info
(
'【{}】输入:{}'
.
format
(
name
,
text
))
area
=
"//*[string()='{}']/following-sibling::div//textarea"
.
format
(
name
)
self
.
type
(
area
,
text
)
...
...
@@ -46,18 +48,21 @@ class OrderDetailMain(BasePage):
return
element
if
get
is
True
else
self
.
click
(
element
)
def
drop_choose_item
(
self
,
name
,
item
):
"""下拉元素"""
log
.
info
(
'【{}】下拉选择:{}'
.
format
(
name
,
item
))
self
.
click
(
"//*[string()='{}']/following-sibling::div//input"
.
format
(
name
))
drop_item
=
"//div[@data-popper-placement='bottom-start' and @aria-hidden='false']//*[text()='{}']"
.
format
(
item
)
self
.
click
(
drop_item
)
def
date_input_item
(
self
,
name
,
date_str
=
None
):
"""日期元素"""
date_input
=
"//*[string()='{}']/following-sibling::div//input"
.
format
(
name
)
date_str
=
self
.
tu
.
get_date_str
(
1
)
if
date_str
is
None
else
date_str
log
.
info
(
'【{}】输入:{}'
.
format
(
name
,
date_str
))
self
.
type
(
date_input
,
date_str
)
def
get_element_text
(
self
,
name
,
get
=
False
):
"""获取元素内文本"""
log
.
info
(
'获取:【{}】'
.
format
(
name
))
element
=
"//div[text()='{}']/following-sibling::div/span"
.
format
(
name
)
if
get
is
True
:
...
...
@@ -77,6 +82,7 @@ class OrderDetailTable(BasePage):
table
=
Table
()
def
position_cell
(
self
,
column_name
,
row_tag
):
"""获取表单明细单元格Xpath"""
colid
=
self
.
table
.
get_col_id
(
column_name
)
# 定位表格
th_xpath
=
"//span[text()='{}']/ancestor::th"
.
format
(
column_name
)
...
...
@@ -87,6 +93,7 @@ class OrderDetailTable(BasePage):
return
"{}/td[@colid='{}']/div"
.
format
(
tr_xpath
,
colid
)
def
get_cell_text
(
self
,
column_name
,
row_tag
):
"""获取表单单元格内容"""
log
.
info
(
'获取{}的{}'
.
format
(
row_tag
,
column_name
))
# 获取列id
cell
=
self
.
position_cell
(
column_name
,
row_tag
)
...
...
@@ -94,6 +101,7 @@ class OrderDetailTable(BasePage):
return
self
.
get_ele_text
(
cell
)
def
input_text
(
self
,
column_name
,
row_tag
,
text
):
"""表单单元格输入框输入内容"""
log
.
info
(
'【{}】的【{}】输入:【{}】'
.
format
(
row_tag
,
column_name
,
text
))
# 定位单元格
td_xpath
=
self
.
position_cell
(
column_name
,
row_tag
)
...
...
@@ -110,6 +118,7 @@ class OrderDetailTable(BasePage):
sleep
(
0.5
)
def
choose_item
(
self
,
column_name
,
row_tag
,
item
):
"""表单单元格下拉选择"""
log
.
info
(
'【{}】的【{}】选择:【{}】'
.
format
(
row_tag
,
column_name
,
item
))
# 定位单元格
td_xpath
=
self
.
position_cell
(
column_name
,
row_tag
)
...
...
@@ -128,6 +137,7 @@ class OrderDetailTable(BasePage):
sleep
(
0.5
)
def
get_details
(
self
,
columns
):
"""获取表单明细详情"""
columns
=
[
columns
]
if
type
(
columns
)
==
str
else
columns
if
type
(
columns
)
==
list
else
pytest
.
fail
(
"获取单据明细详情参数类型错误"
)
detail_list
=
[]
...
...
@@ -140,7 +150,8 @@ class OrderDetailTable(BasePage):
for
index
in
range
(
lines
):
item
=
[]
for
col_id
in
col_list
:
ele
=
"(//td[@colid='{}' and contains(@class, 'col--left')])[{}]//*[contains(@class, 'label')]"
.
format
(
col_id
,
index
+
1
)
ele
=
"(//td[@colid='{}' and contains(@class, 'col--left')])[{}]//*[contains(@class, 'label')]"
.
format
(
col_id
,
index
+
1
)
log
.
info
(
'{}:{}'
.
format
(
'元素:'
,
ele
))
txt
=
self
.
get_ele_text
(
ele
)
log
.
info
(
'{}:{}'
.
format
(
'文本:'
,
txt
))
...
...
This diff is collapsed.
Click to expand it.
unit/public/UI/BasePage.py
+
5
-
3
View file @
fc81126b
...
...
@@ -331,13 +331,15 @@ class BasePage(object):
element
.
click
()
self
.
dd
.
get_value
(
'driver'
).
switch_to
.
window
(
self
.
dd
.
get_value
(
'driver'
).
window_handles
[
-
1
])
def
js
(
self
,
script
):
def
js
(
self
,
script
,
xpath
=
None
):
"""
执行JavaScript
:param script:js语句
:param script: js语句
:param xpath:
"""
log
.
debug
(
'执行JS语句:{}'
.
format
(
script
))
self
.
dd
.
get_value
(
'driver'
).
execute_script
(
script
)
self
.
dd
.
get_value
(
'driver'
).
execute_script
(
script
)
if
xpath
is
None
else
self
.
dd
.
get_value
(
'driver'
).
execute_script
(
script
,
xpath
)
@
staticmethod
def
zoom
(
z_type
,
times
):
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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
Menu
Explore
Projects
Groups
Snippets