Commit fc81126b authored by 齐 振鋆's avatar 齐 振鋆
Browse files

更新打开菜单方式,优化执行js公共方法

parent 7d37b589
No related merge requests found
Showing with 24 additions and 10 deletions
+24 -10
......@@ -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))
......@@ -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))
......
......@@ -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):
......
Supports Markdown
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