summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhz <[email protected]>2024-11-19 18:17:05 +0800
committerzhz <[email protected]>2024-11-19 18:17:05 +0800
commit236b5c587678d8f26abc757a56a74559058b392a (patch)
treece706adf788acf12cdfa2dff10912b3068f30a51
parent9133843ed34e250c37e80849d472d5484e0ae4e8 (diff)
dns_record 元素适配
-rw-r--r--cases/profiles/test_dns_records.py20
-rw-r--r--common/ui_common/profiles/dns_records.py522
-rw-r--r--common/ui_common/profiles/response_pages.py2
3 files changed, 344 insertions, 200 deletions
diff --git a/cases/profiles/test_dns_records.py b/cases/profiles/test_dns_records.py
index 16e2ff29..121a39a5 100644
--- a/cases/profiles/test_dns_records.py
+++ b/cases/profiles/test_dns_records.py
@@ -48,18 +48,18 @@ class TestDnsRecords:
dnsRecords_name = dnsRecords.create(data)
time.sleep(3)
dnsRecords.query(data, require_assertion=1, Name=dnsRecords_name)
- dnsRecords.audit_log("Create")
+ # dnsRecords.audit_log("Create")
dnsRecords_dict = dnsRecords.query(data, require_assertion=1, Name=dnsRecords_name)
dnsRecords.modify(data)
time.sleep(2)
dnsRecords.check_queryConditions(Name=dnsRecords_name)
time.sleep(1)
- dnsRecords_dict2 = dnsRecords.query(data, require_assertion=2, ID=dnsRecords_dict["ID"])
- dnsRecords.audit_log("Edit")
- dnsRecords.query(data, require_assertion=2, ID=dnsRecords_dict["ID"])
+ dnsRecords_dict2 = dnsRecords.query(data, require_assertion=2, UUID=dnsRecords_dict["UUID"])
+ # dnsRecords.audit_log("Edit")
+ dnsRecords.query(data, require_assertion=2, UUID=dnsRecords_dict["UUID"])
dnsRecords.delete()
time.sleep(1)
- dnsRecords.check_queryConditions(ID=dnsRecords_dict["ID"])
+ dnsRecords.check_queryConditions(UUID=dnsRecords_dict["ID"])
#name输入框测试
@pytest.mark.parametrize(
@@ -497,11 +497,12 @@ class TestDnsRecords:
dnsRecords.delete()
#列设置测试
+ @pytest.mark.curd
def test_column_setting(self,demo_fixture):
- column_allname = ["ID", "Vsys ID", "Name", "Type", "Values", "Description", "Reference Count", "Modified Time", "Last Modified By"]
- column_requiredname = ["ID", "Name"]
- column_defaultname = ["ID", "Name", "Type", "Values", "Description", "Reference Count", "Modified Time", "Last Modified By"]
- column_name = ["ID", "Name", "Reference Count", "Last Modified By"]
+ column_allname = ["Vsys ID", "Name", "UUID", "Type", "Values", "Description", "Usage", "Modified Time", "Last Modified By"]
+ column_requiredname = ["Name"]
+ column_defaultname = ["Name", "Type", "Values", "Description", "Usage", "Modified Time", "Last Modified By"]
+ column_name = ["Name", "Usage", "Last Modified By"]
dnsRecords = DnsRecords(demo_fixture)
dnsRecords.column_setting(column_defaultname, column_flags=0)
dnsRecords.column_setting(column_requiredname, column_flags=1)
@@ -514,6 +515,7 @@ class TestDnsRecords:
dnsRecords.turn_pages(1)
#切换语言测试
+ @pytest.mark.curd
def test_language_change(self, demo_fixture):
dnsRecords = DnsRecords(demo_fixture)
dnsRecords.language_change(2)
diff --git a/common/ui_common/profiles/dns_records.py b/common/ui_common/profiles/dns_records.py
index 44989ed5..03f19542 100644
--- a/common/ui_common/profiles/dns_records.py
+++ b/common/ui_common/profiles/dns_records.py
@@ -1,6 +1,6 @@
# -*- coding: UTF-8 -*-
import time
-
+import datetime
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from common.driver_common.mywebdriver import MyWebDriver
@@ -41,17 +41,18 @@ class DnsRecords:
self._search(data, require_assertion=1, Name=self.random_name) #创建后查询
self._modify(data)
time.sleep(2)
- self._search(data, require_assertion=2, ID=self.first_row_ID_content) # 修改后查询
+ self._search(data, require_assertion=2, UUID=self.first_row_uuid_content) # 修改后查询
self._del() #删除数据
- self._check_queryConditions(ID=self.first_row_ID_content)
+ self._check_queryConditions(UUID=self.first_row_uuid_content)
time.sleep(1)
@screenshot_on_failure
def _goto_subProfilePage(self, vsys_name_2=""):
"""vsys_name关键字参数弃用"""
+ self.driver.find_element(By.XPATH, mainpage_navigation_bar_logo_posxpath).click()
self.profiles_po.change_vsys(vsys_name=vsys_name_2)
- self.driver.find_element(By.ID, mainPage_firstLevelMenu_profiles_posId).click()
- self.driver.find_element(By.ID, mainPage_secondLevelMenu_dnsRecords_posId).click()
+ self.driver.find_element(By.XPATH, mainpage_first_level_menu_profiles_posxpath).click()
+ self.driver.find_element(By.XPATH, mainpage_second_level_menu_dns_records_posxpath).click()
@screenshot_on_failure
def _goto_vsysPage(self, vsys_name_2=""):
@@ -70,55 +71,49 @@ class DnsRecords:
self._goto_subProfilePage() #跳转页面
#创建dns record
#点击create
- self.driver.find_element(By.ID, listPage_profile_dnsRecords_createButton_posId).click()
+ self.driver.find_element(By.XPATH, listpage_profile_dns_records_create_button_posxpath).click()
#在create dns record profile操作
if source_name:
self.random_name = source_name[0]
- self.driver.find_element(By.ID, dnsRecordsProfilePage_input_Name_posId).send_keys(self.random_name)
+ self.driver.find_element(By.XPATH, dns_records_profile_page_input_name_posxpath).send_keys(self.random_name)
else:
self.random_name = self.my_random.random_name()
- self.driver.find_element(By.ID, dnsRecordsProfilePage_input_Name_posId).send_keys(self.random_name) #输入名字
+ self.driver.find_element(By.XPATH, dns_records_profile_page_input_name_posxpath).send_keys(self.random_name) #输入名字
#判断点击哪种类型
self._select_type(data, model=0)
#创建item操作
- create_num = self._ceate_item(data, model=0)
+ create_num = self._create_item(data, model=0)
if create_num == 999: #返回999,直接返回
return 999
#输入description内容
- self.driver.find_element(By.ID, dnsRecordsProfilePage_textArea_Description_posId).send_keys(data["description"].split("->")[0])
+ self.driver.find_element(By.XPATH, dns_records_profile_page_text_area_description_posxpath).send_keys(data["description"].split("->")[0])
#点击ok
- self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_oK_posCss).click()
- # print("len=", len(self.driver.find_elements(By.XPATH, "//div[@class='list-container']/div/div")))
- # print("len=", len(self.driver.find_elements(By.XPATH, "//div[@class='list-container']/div/child::div")))
- if len(self.random_name) < 4: # name不符合要求
- if self.driver.element_isExist(By.XPATH, "//label[text()='Name']/parent::div//div[@class='el-form-item__error']"):
+ self.driver.find_element(By.XPATH, dns_records_profile_page_button_ok_posxpath).click()
+ if len(self.random_name) == 0:
+ print("Name cannot be empty")
+ pytest_check.equal(
+ self.driver.find_element(By.XPATH, "//div[@class='MuiFormHelperText-root css-1y20gt9']").text.strip(),
+ "Name cannot be empty", msg="所在行数{}".format(inspect.currentframe().f_lineno))
+ self.driver.find_element(By.XPATH, response_page_button_cancel_posxpath).click()
+ elif len(self.random_name) < 4 and len(self.random_name) > 0: # name不符合要求
+ if self.driver.element_isExist(By.XPATH, "//div[@class='MuiFormHelperText-root css-1y20gt9']"):
print("The length of the name is at most 128 characters and cannot be less than 4 characters")
- pytest_check.equal(
- self.driver.find_element(By.XPATH, "//div[@class='el-form-item__error']").text.strip(),
- "The length of the name is at most 128 characters and cannot be less than 4 characters",
- msg="所在行数{}".format(inspect.currentframe().f_lineno))
+ pytest_check.equal(self.driver.find_element(By.XPATH,
+ "//div[@class='MuiFormHelperText-root css-1y20gt9']").text.strip(),
+ "The length of the name is at most 128 characters and cannot be less than 4 characters",
+ msg="所在行数{}".format(inspect.currentframe().f_lineno))
else:
print("name less than 4,no error message")
- # 点击取消
- self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_cancel_posCss).click()
- self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss).click()
- elif len(self.driver.find_elements(By.XPATH, "//div[@class='list-container']/div/div")) <= 0:
- # 点击取消
- print("Value数量为空,创建失败")
- pytest_check.equal(
- self.driver.find_element(By.XPATH, "//p[contains(.,'The value is empty')]").text.strip(),
- "The value is empty", msg="所在行数{}".format(inspect.currentframe().f_lineno))
- self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_cancel_posCss).click()
- self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss).click()
- # 数据正确时操作
- elif self.driver.element_isExist(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss):
- # print(self.driver.element_isExist(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss))
- self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss).click()
- if len(data["values"]) > 32: # 超过32个value时,提示无法创建
- warnings_content_actual = self.driver.find_element(By.XPATH, dnsRecordsProfilePage_alertContent_posXpath).text.strip()
- print(warnings_content_actual)
- warnings_content_except = "INVALID REQUEST:The parameter record Values cannot be empty and can be configured up to 32."
- pytest_check.equal(warnings_content_actual, warnings_content_except, msg="所在行数{}".format(inspect.currentframe().f_lineno))
+
+ # # 数据正确时操作
+ # elif self.driver.element_isExist(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss):
+ # # print(self.driver.element_isExist(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss))
+ # self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss).click()
+ # if len(data["values"]) > 32: # 超过32个value时,提示无法创建
+ # warnings_content_actual = self.driver.find_element(By.XPATH, dnsRecordsProfilePage_alertContent_posXpath).text.strip()
+ # print(warnings_content_actual)
+ # warnings_content_except = "INVALID REQUEST:The parameter record Values cannot be empty and can be configured up to 32."
+ # pytest_check.equal(warnings_content_actual, warnings_content_except, msg="所在行数{}".format(inspect.currentframe().f_lineno))
return self.random_name
def _select_type(self, data, model=0):
@@ -131,14 +126,14 @@ class DnsRecords:
type: str = data["type"].split("->")[model] #因为modify时,有->表示
type = type.strip().lower()
if type == "a":
- type_posId = dnsRecordsProfilePage_radioButton_typeA_posId
+ type_posxpath = dns_records_profile_page_radio_button_typea_posxpath
elif type == "aaaa":
- type_posId = dnsRecordsProfilePage_radioButton_typeAAAA_posId
+ type_posxpath = dns_records_profile_page_radio_button_typeaaaa_posxpath
else:
- type_posId = dnsRecordsProfilePage_radioButton_typeCNAME_posId
- self.driver.find_element(By.ID, type_posId).click()
+ type_posxpath = dns_records_profile_page_radio_button_typecname_posxpath
+ self.driver.find_element(By.XPATH, type_posxpath).click()
- def _ceate_item(self, data, model=0):
+ def _create_item(self, data, model=0):
"""
根据参数,选择创建item的方式,0为创建函数使用。-1为编辑修改函数使用且当type类型和创建时不一样。
:param data:
@@ -146,52 +141,57 @@ class DnsRecords:
:return:
"""
items: list = data["values"]
- flags = 0 #当一个非空数据时,不点击添加按钮
+ # flags = 0 #当一个非空数据时,不点击添加按钮
for i in range(len(items)):
+ if items[i] == "":
+ # 点击取消
+ pytest_check.equal(
+ self.driver.element_isExist(By.XPATH,f"{profilePage_alert_topInfo_Xpath}//*[normalize-space(text())='INVALID REQUEST:The parameter record Values cannot be empty and can be configured up to 32.']"),
+ True, msg="所在行数{}".format(inspect.currentframe().f_lineno))
+ print("Value数量为空,创建失败")
if items[i].split("->")[model] == "": #modify数据中->左侧为空(创建侧)
if len(items) == 1:
- self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_oK_posCss).click()
+ self.driver.find_element(By.XPATH, dns_records_profile_page_button_ok_posxpath).click()
error_posXpath = "//span[normalize-space(text())='' and contains(@class,'content-show')]/ancestor::div[@class='el-form-item__content']//div[@class='el-form-item__error']"
pytest_check.equal(self.driver.find_element(By.XPATH, error_posXpath).text.strip(),
"Please enter the content", msg="所在行数{}".format(inspect.currentframe().f_lineno))
- item_del_posXpath = dnsRecordsProfilePage_button_delItemByName_posXpath.replace("replaceName", "")
- self.driver.find_element(By.XPATH, item_del_posXpath).click()
+ self.driver.find_element(By.XPATH, dns_records_profile_page_button_del_item_by_name_posxpath).click()
continue
#判断是否需要点击添加按钮
if items[i].split("->")[model] != "":
- flags += 1 #第一个非空标志
- if flags == 1: #遇到第一个非空数据,不用点击
- pass
- else: #第二个后续的非空数据,点击添加
- self.driver.find_element(By.ID, dnsRecordsProfilePage_button_addItem_posId).click()
+ # flags += 1 #第一个非空标志
+ # if flags == 1: #遇到第一个非空数据,不用点击
+ # pass
+ # else: #第二个后续的非空数据,点击添加
+ self.driver.find_element(By.XPATH, dns_records_profile_page_button_add_item_posxpath).click()
#添加item时,text()=空,xpath可以定位到
- if "replaceName" in dnsRecordsProfilePage_input_inputItemName_posXpath:
- item_input_posXpath = dnsRecordsProfilePage_input_inputItemName_posXpath.replace("replaceName", "")
- else:
- raise ValueError(f"replaceName not found in {dnsRecordsProfilePage_input_inputItemName_posXpath}")
- # 保存按钮xpath
- if "replaceName" in dnsRecordsProfilePage_button_saveItemByName_posXpath:
- item_save_posXpath = dnsRecordsProfilePage_button_saveItemByName_posXpath.replace("replaceName", items[i].split("->")[model]) #->修改中会此表标识
- else:
- raise ValueError(f"replaceName not found in {dnsRecordsProfilePage_button_saveItemByName_posXpath}")
- #输出item、保存、添加下一个
- self.driver.find_element(By.XPATH, item_input_posXpath).send_keys(items[i].split("->")[model])
- self.driver.find_element(By.XPATH, item_save_posXpath).click()
+ # if "replace_name" in dns_records_profile_page_input_input_item_name_posxpath:
+ # item_input_posXpath = dns_records_profile_page_input_input_item_name_posxpath.replace("replace_name", "")
+ # else:
+ # raise ValueError(f"replace_name not found in {dns_records_profile_page_input_input_item_name_posxpath}")
+ # # 保存按钮xpath
+ # if "replace_name" in dns_records_profile_page_button_save_item_by_name_posxpath:
+ # item_save_posXpath = dns_records_profile_page_button_save_item_by_name_posxpath.replace("replaceName", items[i].split("->")[model]) #->修改中会此表标识
+ # else:
+ # raise ValueError(f"replace_name not found in {dns_records_profile_page_button_save_item_by_name_posxpath}")
+ #输出item、保存、添加下一个 # TODO
+ values = items[i].split("->")[model]
+ for value in values:
+ self.driver.find_element(By.XPATH, dns_records_profile_page_input_input_item_name_posxpath).send_keys(value)
+ self.driver.find_element(By.XPATH, dns_records_profile_page_button_save_item_by_name_posxpath).click()
if data["values_format"][i].split("->")[model] == "false":
- error_posXpath = "//span[normalize-space(text())='replaceName' and contains(@class,'content-show')]/ancestor::div[@class='el-form-item__content']//div[@class='el-form-item__error']"
- error_posXpath = error_posXpath.replace("replaceName", items[i].split("->")[model])
- pytest_check.equal(self.driver.find_element(By.XPATH, error_posXpath).text.strip(), "Please enter the correct format",
+ error_posXpath = "//div[@class='MuiFormHelperText-root css-1y20gt9']"
+ pytest_check.equal(self.driver.find_element(By.XPATH, error_posXpath).text.strip(), "format error",
msg="所在行数{}".format(inspect.currentframe().f_lineno))
- item_del_posXpath = dnsRecordsProfilePage_button_delItemByName_posXpath.replace("replaceName", items[i].split("->")[model])
- self.driver.find_element(By.XPATH, item_del_posXpath).click()
- if i >= 1 and data["model"] == "create": # 创建用例时,value中含有重复数据判断使用
- for j in range(i): # 和前面所有的比较,是否有重复
- if items[i].split("->")[0] == items[j].split("->")[0]:
- warning_content_actual = self.driver.find_element(By.XPATH, item_save_posXpath).find_element(By.XPATH, "./ancestor::div[contains(@class, 'errmsg-reset')]//div[@class='el-form-item__error']").text.strip() # 获取异常提示信息
- warning_content_expect = "Same item already exists"
- print(warning_content_actual)
- pytest_check.equal(warning_content_actual, warning_content_expect, msg="所在行数{}".format(inspect.currentframe().f_lineno))
- return 999
+ print("输入格式有误")
+ # if i >= 1 and data["model"] == "create": # 创建用例时,value中含有重复数据判断使用
+ # for j in range(i): # 和前面所有的比较,是否有重复
+ # if items[i].split("->")[0] == items[j].split("->")[0]:
+ # warning_content_actual = self.driver.find_element(By.XPATH, item_save_posXpath).find_element(By.XPATH, "./ancestor::div[contains(@class, 'errmsg-reset')]//div[@class='el-form-item__error']").text.strip() # 获取异常提示信息
+ # warning_content_expect = "Same item already exists"
+ # print(warning_content_actual)
+ # pytest_check.equal(warning_content_actual, warning_content_expect, msg="所在行数{}".format(inspect.currentframe().f_lineno))
+ # return 999
def _modify_item(self, data):
"""
@@ -202,22 +202,22 @@ class DnsRecords:
items: list = data["values"]
for i in range(len(items)):
if items[i].split("->")[-1] == "": #modify数据中->右侧为空(删除此数据)
- element_item_del = dnsRecordsProfilePage_button_delItemByName_posXpath.replace("replaceName", items[i].split("->")[0])
+ element_item_del = dns_records_profile_page_button_del_item_by_name_posxpath
self.driver.find_element(By.XPATH, element_item_del).click()
continue
if items[i].split("->")[-1] == "不修改": #modify数据中->右侧为不修改(不修改此数据)
continue
if items[i].split("->")[0] == "": #modify数据中->左侧为空(创建的数据为空,直接添加item)
- self.driver.find_element(By.ID, dnsRecordsProfilePage_button_addItem_posId).click() #点击添加按钮
+ self.driver.find_element(By.XPATH, dns_records_profile_page_button_add_item_posxpath).click() #点击添加按钮
# 添加item时,text()=空,xpath可以定位到
- item_input_posCss = dnsRecordsProfilePage_input_inputItemName_posXpath.replace("replaceName", "")
- item_save_posCss = dnsRecordsProfilePage_button_saveItemByName_posXpath.replace("replaceName", items[i].split("->")[-1]) # ->修改中会此表标识
+ item_input_posCss = dns_records_profile_page_input_input_item_name_posxpath.replace("replaceName", "")
+ item_save_posCss = dns_records_profile_page_button_save_item_by_name_posxpath.replace("replaceName", items[i].split("->")[-1]) # ->修改中会此表标识
# 输入item,保存
self.driver.find_element(By.XPATH, item_input_posCss).send_keys(items[i].split("->")[-1])
self.driver.find_element(By.XPATH, item_save_posCss).click()
if "reverse_case" in data.keys():
if data["reverse_case"] == "samefrommodify": # 修改用例时,value中含有重复数据判断使用
- values_div_el = self.driver.find_elements(By.XPATH, dnsRecordsProfilePage_Values_divItem_posXpath)
+ values_div_el = self.driver.find_elements(By.XPATH, dns_records_profile_page_values_div_item_posxpath)
if len(values_div_el) > 0:
for value_one in values_div_el:
print(value_one.text.strip())
@@ -232,12 +232,17 @@ class DnsRecords:
break
continue
#直接编辑item项内容,在原有的item中编辑值
- item_edit_posCss = dnsRecordsProfilePage_button_editItemByName_posXpath.replace("replaceName", items[i].split("->")[0])
- item_input_posCss = dnsRecordsProfilePage_input_inputItemName_posXpath.replace("replaceName", items[i].split("->")[0])
- self.driver.find_element(By.XPATH, item_edit_posCss).click()
- self.driver.find_element(By.XPATH, item_input_posCss).clear()
- self.driver.find_element(By.XPATH, dnsRecordsProfilePage_input_inputItemName_posXpath.replace("replaceName", "")).send_keys(items[i].split("->")[-1])
- self.driver.find_element(By.XPATH, dnsRecordsProfilePage_button_saveItemByName_posXpath.replace("replaceName", items[i].split("->")[-1])).click()
+ # item_edit_posCss = dns_records_profile_page_button_edit_item_by_name_posxpath
+ # item_input_posCss = dns_records_profile_page_input_input_item_name_posxpath
+ # self.driver.find_element(By.XPATH, item_edit_posCss).click()
+ # self.driver.find_element(By.XPATH, item_input_posCss).clear()
+ # 点击删除在重新新增一个
+ self.driver.find_element(By.XPATH, dns_records_profile_page_button_del_item_by_name_posxpath).click()
+ self.driver.find_element(By.XPATH, dns_records_profile_page_button_add_item_posxpath).click()
+ values = items[i].split("->")[-1]
+ for value in values:
+ self.driver.find_element(By.XPATH, dns_records_profile_page_input_input_item_name_posxpath).send_keys(value)
+ self.driver.find_element(By.XPATH, dns_records_profile_page_button_save_item_by_name_posxpath).click()
@screenshot_on_failure
def listPageBottom_allSelect(self):
@@ -287,10 +292,10 @@ class DnsRecords:
#打开该列表
self._goto_subProfilePage(vsys_name_2=vsys_name_2)
#first_row查询到的第一行内容。map_header_className为需要使用的到字典,用来提取第一行的结果。
- result = self.profiles_po.query(listPage_profileSearch_dnsRecords_selectLabel_posId, listPage_profileSearch_dnsRecords_dropDown_item_posXpath,
- listPage_profileSearch_dnsRecords_input_itemContent_posXpath, listPage_profileSearch_dnsRecords_buttonSearch_posId,
- listPage_profilTable_dnsRecords_tableTbody_posXpath, listPage_profilTable_dnsRecords_tableHeader_posXpath,
- listPage_profileSearch_subProfiles_dropDown_typeItem_posXpath=listPage_profileSearch_dnsRecords_dropDown_typeItem_posXpath, **kwargs)
+ result = self.profiles_po.query(listpage_profile_search_dns_records_select_label_posxpath, listpage_profile_search_dns_records_drop_down_item_posxpath,
+ listpage_profile_search_dns_records_input_item_content_posxpath, listpage_profile_search_dns_records_button_search_posxpath,
+ listpage_profile_table_dns_records_table_tbody_posxpath, listpage_profile_table_dns_records_table_header_posxpath,
+ listPage_profileSearch_subProfiles_dropDown_typeItem_posXpath=listpage_profile_search_dns_records_drop_down_item_posxpath, **kwargs)
if result == [0, 0]:
return 0
else:
@@ -329,22 +334,24 @@ class DnsRecords:
first_row = rows[0]
"""
#第一行的勾选定位,给修改、删除使用
- self.first_row_checkBox_element = first_row.find_element(By.XPATH, "//span[@class='el-checkbox__input']")
- self.first_row_ID_content = first_row.find_element(By.XPATH, "//div[@class='table-status-item-id']/span").text.strip()
- first_row_id_content = first_row.find_element(By.XPATH, "//div[@class='table-status-item-id']//span").text.strip()
+ self.first_row_checkBox_element = first_row.find_element(By.XPATH, "//input[@class='MuiCheckbox-input css-1jj0cvj']")
+ column_allname = ["Vsys ID", "UUID", "Name", "Type", "Values", "Description", "Usage", "Modified Time", "Last Modified By"]
+ self._column_setting_help(column_allname, column_flags=2)
+ self.first_row_uuid_content = self.driver.find_element(By.XPATH, "//div[@data-field='uuid' and @data-colindex=3]").text.strip()
+ first_row_uuid_content = self.driver.find_element(By.XPATH, "//div[@data-field='uuid' and @data-colindex=3]").text.strip()
#first_row_VsysID_class = map_header_className["Vsys ID"]
#first_row_VsysID_content = first_row.find_element(By.XPATH, f"//td[contains(@class, '{first_row_VsysID_class}')]//span").text.strip()
- first_row_Name_class = map_header_className["Name"]
- first_row_Name_content = first_row.find_element(By.XPATH, f"//td[contains(@class, '{first_row_Name_class}')]//span").text.strip()
- first_row_Type_class = map_header_className["Type"]
- first_row_Type_content = first_row.find_element(By.XPATH, f"//td[contains(@class, '{first_row_Type_class}')]//span").text.strip()
- first_row_Values_class = map_header_className["Values"]
- first_row_Values_contents = first_row.find_elements(By.XPATH, f"//td[contains(@class, '{first_row_Values_class}')]//span//span")
+ # first_row_Name_class = map_header_className["Name"]
+ first_row_Name_content = self.driver.find_element(By.XPATH, f"//div[@data-field='name' and @data-colindex=4]").text.strip()
+ # first_row_Type_class = map_header_className["Type"]
+ first_row_Type_content = self.driver.find_element(By.XPATH, f"//div[@data-field='type' and @data-colindex=5]").text.strip()
+ # first_row_Values_class = map_header_className["Values"]
+ first_row_Values_contents = self.driver.find_elements(By.XPATH, f"//div[@data-field='Vales' and @data-colindex=6]")
values_list = []
for value in first_row_Values_contents:
values_list.append(value.text.strip())
- print(first_row_id_content, first_row_Name_content, first_row_Type_content, values_list)
- search_dict = {"ID": first_row_id_content, "Name": first_row_Name_content}
+ print(first_row_uuid_content, first_row_Name_content, first_row_Type_content, values_list)
+ search_dict = {"UUID": first_row_uuid_content, "Name": first_row_Name_content}
#不同操作后的断言,创建后、修改后、无断言
if require_assertion == 1: #直接创建后,使用的断言
create_values_list = [i.split("->")[0] for i in data["values"] if i.split("->")[0] != ""] # 兼容modify中->的标识值
@@ -376,15 +383,15 @@ class DnsRecords:
return 0
#点击勾选第一行选择框
self.first_row_checkBox_element.click() #变量来自查询函数
- self.driver.find_element(By.ID, listPage_profile_dnsRecords_editButton_posId).click()
+ self.driver.find_element(By.XPATH, listpage_profile_dns_records_edit_button_posxpath).click()
# 判断保存后内容是否丢失,是否不显示
- current_name = self.driver.find_element(By.ID, dnsRecordsProfilePage_input_Name_posId).get_attribute("value")
+ current_name = self.driver.find_element(By.XPATH, dns_records_profile_page_input_name_posxpath).get_attribute("value")
# print("current_name=", current_name)
pytest_check.equal(current_name, self.random_name, msg="所在行数{}".format(inspect.currentframe().f_lineno))
- current_type = self.driver.find_element(By.XPATH, "//label[@class='el-radio-button el-radio-button--small is-active']").text.strip()
+ current_type = self.driver.find_element(By.XPATH, "//button[contains(@class, 'btn-active')]").text.strip()
# print("current_type=", current_type)
pytest_check.equal(current_type, data["type"].split("->")[0], msg="所在行数{}".format(inspect.currentframe().f_lineno))
- current_description = self.driver.find_element(By.ID, dnsRecordsProfilePage_textArea_Description_posId).get_attribute("value")
+ current_description = self.driver.find_element(By.XPATH, dns_records_profile_page_text_area_description_posxpath).get_attribute("value")
# print("current_description=", current_description)
pytest_check.equal(current_description, data["description"].split("->")[0], msg="所在行数{}".format(inspect.currentframe().f_lineno))
current_values_map = self.driver.find_elements(By.XPATH, "//div[@class='el-form-item errmsg-reset el-form-item--feedback is-no-asterisk el-form-item--small']")
@@ -401,19 +408,19 @@ class DnsRecords:
#根据修改数据,判断type类型
self._select_type(data, model=-1)
if data["type"].split("->")[0].lower() != data["type"].split("->")[1].lower(): #创建和修改参数的type类型不一致
- self._ceate_item(data, model=-1)
+ self._create_item(data, model=-1)
else:
self._modify_item(data)
# 修改name
new_Name = "(修改后)"
- self.driver.find_element(By.ID, dnsRecordsProfilePage_input_Name_posId).send_keys(new_Name)
+ self.driver.find_element(By.XPATH, dns_records_profile_page_input_name_posxpath).send_keys(new_Name)
self.random_name = self.random_name+new_Name
#修改description内容
- self.driver.find_element(By.ID, dnsRecordsProfilePage_textArea_Description_posId).clear()
- self.driver.find_element(By.ID, dnsRecordsProfilePage_textArea_Description_posId).send_keys(data["description"].split("->")[-1])
- self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_oK_posCss).click()
- if self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss).is_displayed():
- self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss).click()
+ self.driver.find_element(By.XPATH, dns_records_profile_page_text_area_description_posxpath).clear()
+ self.driver.find_element(By.XPATH, dns_records_profile_page_text_area_description_posxpath).send_keys(data["description"].split("->")[-1])
+ self.driver.find_element(By.XPATH, dns_records_profile_page_button_ok_posxpath).click()
+ # if self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss).is_displayed():
+ # self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_warningSaveYes_posCss).click()
@screenshot_on_failure
def _del(self, del_model=0):
@@ -426,7 +433,7 @@ class DnsRecords:
#点击勾选第一行选择框
self.first_row_checkBox_element.click() #变量来自查询函数
elif del_model == 1: # 勾选可以删除的选项,并删除;没有锁、没有被引用的对象
- rows = self.driver.find_element(By.XPATH, listPage_profilTable_dnsRecords_tableTbody_posXpath).find_elements(By.XPATH, "./tr")
+ rows = self.driver.find_element(By.XPATH, listpage_profile_table_dns_records_table_tbody_posxpath).find_elements(By.XPATH, "./tr")
if len(rows) == 0: # 没有数据,直接返回
return
else:
@@ -434,8 +441,8 @@ class DnsRecords:
if del_result == 1: # 1表示没有删除对象,直接返回
return 0
#调用profiles的功能删除方法
- self.profiles_po.delete(listPage_profile_dnsRecords_delButton_posId, listPage_dialogTips_dnsRecords_button_yes_posCss,
- listPage_dialogTips_dnsRecords_button_no_posCss)
+ self.profiles_po.delete(listpage_profile_dns_records_del_button_posxpath, listpage_dialogtips_dns_records_button_yes_posxpath,
+ listpage_dialogtips_dns_records_button_no_posxpath)
@screenshot_on_failure
def _column_setting(self, column: (), column_flags=0):
@@ -448,10 +455,14 @@ class DnsRecords:
"""
# 打开该列表
self._goto_subProfilePage()
+ self._column_setting_help(column, column_flags)
+
+ def _column_setting_help(self, column: (), column_flags=0):
profiles = "DNSRecordProfile"
- column_click = column[2:]
- current_column = self.profiles_po.column_setting(mainPage_profileColumn_columnSetting_posId, listPage_profileColumn_dnsRecords_button_columnAll_posXpath, listPage_profileColumn_dnsRecords_button_cancel_posId,
- listPage_profileColumn_dnsRecords_button_ok_posId, profiles, column_flags, column_click)
+ column_click = column[1:]
+ current_column = self.profiles_po.column_setting(mainpage_profile_column_setting_posxpath,
+ listpage_profile_column_dns_records_button_column_all_posxpath,
+ profiles, column_flags, column_click)
pytest_check.equal(current_column, column, msg="所在行数{}".format(inspect.currentframe().f_lineno))
def _turn_pages(self, pages):
@@ -473,19 +484,19 @@ class DnsRecords:
:return:
"""
self._goto_subProfilePage()
- header_content = self.profiles_po.language_change(mainPage_language_change_posXpath, mainPage_language_chinese_posXpath,
- mainPage_language_russian_posXpath, mainPage_language_english_posXpath, language)
+ header_content = self.profiles_po.language_change(mainpage_language_change_posxpath, mainpage_language_dropdown_item_posxpath.format(replace_language='中文'),
+ mainpage_language_dropdown_item_posxpath.format(replace_language='Русский'), mainpage_language_dropdown_item_posxpath.format(replace_language='English'), language)
# 断言
time.sleep(2)
if language == 0:
- header_english = ["ID", "Vsys ID", "Name", "Type", "Values", "Description", "Reference Count", "Modified Time", "Last Modified By"]
- assert set(header_content).issubset(set(header_english))
+ header_english = ["Vsys ID", "Name", "Type", "Values", "Description", "Reference Count", "Modified Time", "Last Modified By"]
+ pytest_check.equal(header_content, header_english, msg="所在行数{}".format(inspect.currentframe().f_lineno))
if language == 1:
- header_chinese = ['ID', '虚拟系统 ID', '名称', '类型', '值', '描述', '引用计数', '操作时间', '最后一次修改者']
- assert set(header_content).issubset(set(header_chinese))
+ header_chinese = ['虚拟系统 ID', '名称', '类型', '值', '描述', '引用计数', '操作时间', '最后一次修改者']
+ pytest_check.equal(header_content, header_chinese, msg="所在行数{}".format(inspect.currentframe().f_lineno))
if language == 2:
- header_russian = ['ID', 'Vsys ID', 'Имя', 'Тип', 'Значения', 'Описание', 'Подсчет Ссылок', 'Время Изменения', 'Последний Раз Редактирован']
- assert set(header_content).issubset(set(header_russian))
+ header_russian = ['Vsys ID', 'Имя', 'Тип', 'Значения', 'Описание', 'Подсчет Ссылок', 'Время Изменения', 'Последний Раз Редактирован']
+ pytest_check.equal(header_content, header_russian, msg="所在行数{}".format(inspect.currentframe().f_lineno))
def _vsys_case(self, data, c_vsys, c_type, c_supervisor, f_vsys, f_type, f_supervisor="None"):
name = self._create(data, f_vsys)
@@ -610,12 +621,12 @@ class DnsRecords:
self.driver.find_element(By.XPATH, "//div[@class='box-content']/div/div[1]").click()
def _check_queryConditions(self, **kwargs):
- queryConditions_xpath = self.driver.find_elements(By.XPATH, "//div[@class='list-container']//div[@class='ListItem clearfix']")
+ queryConditions_xpath = self.driver.find_elements(By.XPATH, "//div[@class='dune-search-tag search_tag_1']")
# print(queryConditions_xpath)
- queryConditions ={}
+ queryConditions = {}
for i in queryConditions_xpath:
- key = i.find_element(By.XPATH, "//div[@class='label']").text.strip()
- value = i.find_element(By.XPATH, "//div[@class='value']").text.strip()
+ key = i.find_element(By.XPATH, "//span[normalize-space(text())='contains']/preceding-sibling::span").text.strip()
+ value = i.find_element(By.XPATH, "//span[normalize-space(text())='contains']/following-sibling::span").text.strip()
queryConditions[key] = value
# print("key=", key)
# print("value=", value)
@@ -623,8 +634,8 @@ class DnsRecords:
print(kwargs)
assert queryConditions == kwargs
# 强制点击清空查询按钮
- element_clear = self.driver.find_element(By.ID, listPage_profileSearch_dnsRecords_buttonClear_posId)
- self.driver.execute_script("arguments[0].click()", element_clear) # 强制点击
+ # element_clear = self.driver.find_element(By.ID, listPage_profileSearch_dnsRecords_buttonClear_posId)
+ # self.driver.execute_script("arguments[0].click()", element_clear) # 强制点击
@screenshot_on_failure
def check_createAndEditPageElement(self, data):
@@ -707,20 +718,19 @@ class DnsRecords:
@screenshot_on_failure
def chk_lnk_mod_case(self, data, link_list_dict):
+ tmp_name = self._create(data)
+ time.sleep(3)
+ search_dict = self._search(data, require_assertion=0, Name=tmp_name)
+ time.sleep(3)
+ # 勾选第一行
+ self.first_row_checkBox_element.click()
+ # 调用公共的link创建逻辑
+ Des_ID_list, Request_ID, Sou_ID_list = self.profiles_po.linkdata(link_list_dict,
+ listPage_profile_dnsRecords_linkButton_posId,
+ listPage_linkTips_dnsRecords_button_save_posXpath,
+ listPage_linkTips_dnsRecords_button_add_posXpath,
+ listPage_linkTips_dnsRecords_button_OK_posXpath)
try:
- tmp_name = self._create(data)
- time.sleep(3)
- search_dict = self._search(data, require_assertion=0, Name=tmp_name)
- time.sleep(3)
- # 勾选第一行
- self.first_row_checkBox_element.click()
- # 调用公共的link创建逻辑
- Des_ID_list, Request_ID, Sou_ID_list = self.profiles_po.linkdata(link_list_dict,
- listPage_profile_dnsRecords_linkButton_posId,
- listPage_linkTips_dnsRecords_button_save_posXpath,
- listPage_linkTips_dnsRecords_button_add_posXpath,
- listPage_linkTips_dnsRecords_button_OK_posXpath)
-
self._search(data, require_assertion=1, ID=search_dict["ID"])
# 点击勾选第一行选择框
self.first_row_checkBox_element.click() # 变量来自查询函数
@@ -773,7 +783,8 @@ class DnsRecords:
# 判断是否一致
self.profiles_po.dicts_are_equal(sou_value_dict, des_val_dict_one, des_val_dict_two)
except Exception as e:
- assert e
+ print("Exception ============", e)
+ raise e
finally:
self._just_goto_dns_record_page()
self._delete_des(Des_ID_list, data) # 删除数据
@@ -917,6 +928,7 @@ class DnsRecords:
],
"description": "test.sodmao.asdo.com->12.12.33.45"
'''
+ time.sleep(0.5)
value_dict = {}
name = self.driver.find_element(By.ID, dnsRecordsProfilePage_input_Name_posId).get_attribute("value")
value_dict["name"] = name
@@ -931,7 +943,6 @@ class DnsRecords:
value_dict["description"] = description
# 点击 Cancel
self.driver.find_element(By.CSS_SELECTOR, dnsRecordsProfilePage_button_cancel_posCss).click()
-
return value_dict
def chk_query_spec_chr(self, data):
@@ -969,16 +980,152 @@ class DnsRecords:
def _audit_log_all_operation(self, data):
ran_name = self._create(data)
try:
- time.sleep(0.5)
+ profiles_type = "DNS Record Profile"
search_dict = self._search(data, Name=ran_name)
+ self._audit_log_operation(profiles_type, search_dict["ID"], operation_type='Create')
+ self._search(data, Name=ran_name)
+ self._audit_log_operation(profiles_type, search_dict["ID"], operation_type='Query Verbose')
+ self._search(data, Name=ran_name)
self._modify(data)
- time.sleep(0.5)
+ self._search(data, Name=ran_name)
+ self._audit_log_operation(profiles_type, search_dict["ID"], operation_type='Edit')
+ self._goto_subProfilePage()
+ self.profiles_po._audit_log_query_list(profiles_type, search_dict["ID"], operation_type='Query List')
except Exception as e:
raise e
finally:
self._search(data, Name=ran_name)
self._del()
- self.profiles_po.audit_log_view("DNS Record Profile", search_dict["ID"])
+ self.profiles_po._audit_log_delete(profiles_type, search_dict["ID"], operation_type='Delete')
+
+ def _audit_log_operation(self, profiles_type, search_id, operation_type):
+ # 选中第一行
+ self.first_row_checkBox_element.click()
+ # 点击编辑
+ self.driver.find_element(By.ID, listPage_profile_dnsRecords_editButton_posId).click()
+ if operation_type == 'Query Verbose':
+ click_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
+ if operation_type == 'Create':
+ # 创建时间
+ compare_time = self.driver.find_element(By.XPATH, dns_records_profile_page_create_time_posXpath).text
+ elif operation_type == 'Edit':
+ # 修改时间
+ compare_time = self.driver.find_element(By.XPATH, dns_records_profile_page_modify_time_posXpath).text
+ # 用户
+ user_name = self.driver.find_element(By.XPATH,
+ "//div[@class='bifang-proxy-id item-content user_name_font']").text
+
+ if operation_type == 'Query Verbose':
+ self.profiles_po.search_compare_item(profiles_type, search_id, operation_type=operation_type,
+ operation_flag=0)
+ else:
+ # 对比 Audit log 详情页
+ self.driver.find_element(By.XPATH, dns_records_profile_page_audit_logs_posXpath).click()
+ self.driver.find_element(By.XPATH, "(//span[@class='el-checkbox__inner'])[2]").click()
+ # 点击 Compare
+ self.driver.find_element(By.XPATH, dns_records_profile_page_audit_logs_compare_posXpath).click()
+
+ if operation_type == 'Create':
+ self.profiles_po._check_audit_log_detail_page(profiles_type, user_name, search_id, compare_time, operation_flag=0)
+ elif operation_type == 'Edit':
+ self.profiles_po._check_audit_log_detail_page(profiles_type, user_name, search_id, compare_time, operation_flag=1)
+ # 对比系统 audit_log 页
+ self.profiles_po.search_compare_item(profiles_type, search_id, operation_type=operation_type,
+ operation_flag=0)
+ time.sleep(1)
+
+ if operation_type == 'Create':
+ # 点击 Compare 对比
+ self.driver.find_element(By.XPATH,
+ "//button[@class='el-button btn-style el-button--info el-button--mini']/span[normalize-space(text())='Compare']").click()
+ self.driver.find_element(By.ID, list_page_audit_log_search_button_compare_posId).click()
+
+ self.profiles_po._check_audit_log_detail_page(profiles_type, user_name, search_id, compare_time, operation_flag=0)
+ elif operation_type == 'Edit':
+ # 点击 Compare 对比
+ self.driver.find_element(By.XPATH,
+ "//button[@class='el-button btn-style el-button--info el-button--mini']/span[normalize-space(text())='Compare']").click()
+ # 对比 V.1
+ self.driver.find_element(By.XPATH, "(//td[contains(@class, 'is-left el-table-column--selection')])[last()]").click()
+ self.driver.find_element(By.ID, list_page_audit_log_search_button_compare_posId).click()
+ self.profiles_po._check_audit_log_system_page(profiles_type, user_name, search_id, compare_time, operation_flag=1)
+ elif operation_type == 'Query Verbose':
+ # 点击 Compare 对比
+ time.sleep(1)
+ self.driver.find_element(By.XPATH,
+ "(//button[@class='el-button btn-style el-button--info el-button--mini'])[1]").click()
+ self.profiles_po._check_audit_log_detail_page(profiles_type, user_name, search_id, click_time, operation_flag=2)
+
+
+ def _all_search_fields(self, data):
+ # 新建数据
+ ran_name = self._create(data)
+ # 名字查询
+ search_dict = self._search(data, Name=ran_name)
+ try:
+ # ID 唯一查询
+ self._search(data, ID=search_dict['ID'])
+ # 只有一行记录并且ID一致
+ id_eles = self.driver.find_elements(By.XPATH, "//div[@class='table-status-item-id']")
+ id_ele_lst = [e.text for e in id_eles]
+ pytest_check.equal(len(id_ele_lst), 1, msg="所在行数{}".format(inspect.currentframe().f_lineno))
+ for id_ele in id_ele_lst:
+ pytest_check.equal(id_ele, search_dict['ID'], msg="所在行数{}".format(inspect.currentframe().f_lineno))
+
+ # 名字模糊查询
+ search_name = self.profiles_po.random_substring(ran_name)
+ self._search(data, Name=search_name)
+ # 可以有多行记录都需要包含在名字里面
+ name_eles = self.driver.find_elements(By.XPATH, "//td[contains(@class,'el-table_1_column_2 is-left')]")
+ name_ele_lst = [e.text for e in name_eles]
+ for name_ele in name_ele_lst:
+ pytest_check.equal(search_name in name_ele, True, msg="所在行数{}".format(inspect.currentframe().f_lineno))
+ self.driver.find_element(By.ID, listPage_profileSearch_dnsRecords_dropDown_search_clear_posId).click()
+
+ # A 类型查询
+ search_type = 'A'
+ self.driver.find_element(By.ID, mainPage_profileSearch_selectLabel_posId).click()
+ self.driver.find_element(By.ID, listPage_profileSearch_dnsRecords_dropDown_type_posId).click()
+ scrollable_div = self.driver.find_element(By.XPATH,
+ f"//div[@class='el-select-dropdown el-popper select-popper']//span[text()='{search_type}']")
+ self.driver.execute_script("arguments[0].scrollIntoView();", scrollable_div)
+ scrollable_div.click()
+ self.driver.find_element(By.ID, mainPage_profileSearch_buttonSearch_posId).click()
+ type_eles = self.driver.find_elements(By.XPATH, "//td[contains(@class,'el-table_1_column_3 is-left')]")
+ type_ele_lst = [e.text for e in type_eles]
+ if type_ele_lst:
+ pytest_check.equal(len(set(type_ele_lst)), 1, msg="所在行数{}".format(inspect.currentframe().f_lineno))
+ else:
+ pytest_check.equal(len(set(type_ele_lst)), 0, msg="所在行数{}".format(inspect.currentframe().f_lineno))
+ self.driver.find_element(By.ID, listPage_profileSearch_dnsRecords_dropDown_search_clear_posId).click()
+
+ # AAAA 类型查询
+ search_type = 'AAAA'
+ self.driver.find_element(By.ID, mainPage_profileSearch_selectLabel_posId).click()
+ self.driver.find_element(By.ID, listPage_profileSearch_dnsRecords_dropDown_type_posId).click()
+ scrollable_div = self.driver.find_element(By.XPATH,
+ f"//div[@class='el-select-dropdown el-popper select-popper']//span[text()='{search_type}']")
+ self.driver.execute_script("arguments[0].scrollIntoView();", scrollable_div)
+ scrollable_div.click()
+ # 搜索
+ self.driver.find_element(By.ID, mainPage_profileSearch_buttonSearch_posId).click()
+ type_eles = self.driver.find_elements(By.XPATH, "//td[contains(@class,'el-table_1_column_3 is-left')]")
+ type_ele_lst = [e.text for e in type_eles]
+ if type_ele_lst:
+ pytest_check.equal(len(set(type_ele_lst)), 1, msg="所在行数{}".format(inspect.currentframe().f_lineno))
+ else:
+ pytest_check.equal(len(set(type_ele_lst)), 0, msg="所在行数{}".format(inspect.currentframe().f_lineno))
+
+ # 上述组合查询
+ self.driver.find_element(By.ID, listPage_profileSearch_dnsRecords_dropDown_search_clear_posId).click()
+
+
+ except Exception as e:
+ print("Exception ============", e)
+ raise e
+ finally:
+ self._search(data, Name=ran_name)
+ self._del()
create = _create
query = _search
@@ -1004,9 +1151,9 @@ if __name__ == '__main__':
)
a.get("http://192.168.44.72")
a.maximize_window()
- a.find_element(By.XPATH, "//*[@id='app']/div/div[1]/div[2]/div[2]/div[1]/div/input").send_keys("AUTO_UI_TEST_KG")
- a.find_element(By.XPATH, "//*[@id='app']/div/div[1]/div[2]/div[2]/div[2]/div/input").send_keys("kongweibin1")
- a.find_element(By.ID, "login").click()
+ a.find_element(By.XPATH, loginpage_username_posxpath).send_keys("AUTO_UI_TEST_KG")
+ a.find_element(By.XPATH, loginpage_passwd_posxpath).send_keys("kongweibin1")
+ a.find_element(By.XPATH, login_page_sign_in_posxpath).click()
time.sleep(2)
# 测试修改数据
r = DnsRecords(a)
@@ -1015,41 +1162,36 @@ if __name__ == '__main__':
# model=0/1 ====0:单个 1group
# type =IMSI/Phone_Number/IMEI
data = {
- "ids": "创建多类型A,再修改为CNAME用例",
- "model": "modify",
- "type": "A->CNAME",
- "values":
- [
- "112.12.32.12->test.sdgoc.sdwa.caom.com",
- "53.23.234.21->",
- "12.12.33.45->test.sodmao.asdo.com",
- "->test.sddsg.sdsd.fco.cn"
- ],
- "values_format":
- [
- "true->true",
- "true->",
- "true->true",
- "->true"
- ],
- "description": "12.12.33.45->test.sodmao.asdo.com"
+
+ "ids": "创建单个类型A用例校验格式测试查出范围ip地址",
+ "model": "create",
+ "type": "A",
+ "values":
+ [
+ "6.6.6.6666"
+ ],
+ "values_format":
+ [
+ "false"
+ ],
+ "description": "test-description1234"
}
# 测试link
- link_parse = configparser.ConfigParser()
- link_parse_dir = os.path.join(workdir, "config", "linkcluster.ini")
- link_parse.read(link_parse_dir, encoding="utf-8")
- link_list_dict = []
- link_list = [1] # 可取值 1、2、 3、4、5 #这些取值来自linkcluster.ini配置文件
- for i in link_list:
- tmp_dict = {}
- link_index = "link_{}".format(i)
- tmp_dict["link_dst_cluster"] = link_parse.get(link_index, "link_dst_cluster")
- tmp_dict["link_dst_vsys"] = link_parse.get(link_index, "link_dst_vsys")
- tmp_dict["url"] = link_parse.get(link_index, "url")
- tmp_dict["username"] = link_parse.get(link_index, "username")
- tmp_dict["passwd"] = link_parse.get(link_index, "passwd")
- link_list_dict.append(copy.deepcopy(tmp_dict))
- print(link_list_dict)
+ # link_parse = configparser.ConfigParser()
+ # link_parse_dir = os.path.join(workdir, "config", "linkcluster.ini")
+ # link_parse.read(link_parse_dir, encoding="utf-8")
+ # link_list_dict = []
+ # link_list = [1] # 可取值 1、2、 3、4、5 #这些取值来自linkcluster.ini配置文件
+ # for i in link_list:
+ # tmp_dict = {}
+ # link_index = "link_{}".format(i)
+ # tmp_dict["link_dst_cluster"] = link_parse.get(link_index, "link_dst_cluster")
+ # tmp_dict["link_dst_vsys"] = link_parse.get(link_index, "link_dst_vsys")
+ # tmp_dict["url"] = link_parse.get(link_index, "url")
+ # tmp_dict["username"] = link_parse.get(link_index, "username")
+ # tmp_dict["passwd"] = link_parse.get(link_index, "passwd")
+ # link_list_dict.append(copy.deepcopy(tmp_dict))
+ # print(link_list_dict)
""" 传参查考
link_list_dict = [
{
@@ -1062,7 +1204,7 @@ if __name__ == '__main__':
]
"""
- r.check_link_case_modify(data, link_list_dict=link_list_dict)
+ r.create(data)
'''
update_two_value_dict == == == == == = {'name': 'test_uitemp_xlVvJWuk_25212028_2024-07-19-11-27-15(修改后)',
'type': 'CNAME',
diff --git a/common/ui_common/profiles/response_pages.py b/common/ui_common/profiles/response_pages.py
index 63a15fe1..6334b1ea 100644
--- a/common/ui_common/profiles/response_pages.py
+++ b/common/ui_common/profiles/response_pages.py
@@ -85,7 +85,7 @@ class ResponsePages:
pytest_check.equal(self.driver.find_element(By.XPATH,"//div[@class='MuiFormHelperText-root css-1y20gt9']").text.strip(),
"Name cannot be empty", msg="所在行数{}".format(inspect.currentframe().f_lineno))
self.driver.find_element(By.XPATH, response_page_button_cancel_posxpath).click()
- if len(self.random_name) < 4 and len(self.random_name) > 0: # name不符合要求
+ elif len(self.random_name) < 4 and len(self.random_name) > 0: # name不符合要求
if self.driver.element_isExist(By.XPATH, "//div[@class='MuiFormHelperText-root css-1y20gt9']"):
print("The length of the name is at most 128 characters and cannot be less than 4 characters")
pytest_check.equal(self.driver.find_element(By.XPATH, "//div[@class='MuiFormHelperText-root css-1y20gt9']").text.strip(),