diff options
Diffstat (limited to 'common/ui_common/objects/accounts.py')
| -rw-r--r-- | common/ui_common/objects/accounts.py | 346 |
1 files changed, 240 insertions, 106 deletions
diff --git a/common/ui_common/objects/accounts.py b/common/ui_common/objects/accounts.py index fd09d4f2..17942673 100644 --- a/common/ui_common/objects/accounts.py +++ b/common/ui_common/objects/accounts.py @@ -1,5 +1,6 @@ # -*- coding: UTF-8 -*- import configparser +import re import time import pytest @@ -76,6 +77,7 @@ class Accounts: self.driver.find_element(By.XPATH, mainPage_firstLevelMenu_Objects_posXpath).click() self.driver.implicitly_wait(2) self.driver.find_element(By.XPATH, mainPage_secondLevelMenu_Account_posXpath).click() + time.sleep(3) @screenshot_on_failure def _just_goto_accountsPage(self): @@ -101,6 +103,7 @@ class Accounts: is_first_exist = self.driver.element_isExist(By.XPATH, list_first_row_first_column_posXpath) assert is_first_exist or total_value == 0, "校验失败!!列表页为空!!" self.my_count += 1 + time.sleep(3) @screenshot_on_failure def _create(self, data): @@ -343,7 +346,7 @@ class Accounts: if data_acc == "[random]": data_acc = self.random_account self._items_acc_add(data_acc) - self._items_acc_search(search_pos="single", search_value=data_acc) + # self._items_acc_search(search_pos="single", search_value=data_acc) elif data_acc[-16:] == "[ImportFromFile]": # abc.txt[ImportFromFile]->表示文件导入方式添加Item data_file_name = data_acc[:-16] self._items_acc_add_from_file(data_file_name) @@ -354,7 +357,7 @@ class Accounts: item_datas = f.readlines() # 读取文件所有行内容 item_data = item_datas[random.randint(1, len(item_datas)) - 1].replace("\\n", "").strip() # 任选一行的数据 - self._items_acc_search(search_pos="single", search_value=item_data) + # self._items_acc_search(search_pos="single", search_value=item_data) elif "&" in data_values[i].split("->")[0].strip(): # 一条Item中加多个数据: # print("#一条Item中加多个数据") item_value_list = [] @@ -423,8 +426,9 @@ class Accounts: data_acc = self.my_random.random_account() self._operate_sub_items_modify(data, old_data, data_acc) if search_sub_obj: - self._items_acc_search(search_pos="sub", - search_value=self._operate_sub_name(data, data_acc)) + pass + # self._items_acc_search(search_pos="sub", + # search_value=self._operate_sub_name(data, data_acc)) else: # 新增数据 asdnkj-> if data_acc == "[random]": # random->表示新增对象value值为随机 data_acc = self.random_account @@ -436,8 +440,9 @@ class Accounts: else: self._sub_objects_acc_add(data, data_acc) if search_sub_obj: - self._items_acc_search(search_pos="sub", - search_value=self._operate_sub_name(data, data_acc)) + pass + # self._items_acc_search(search_pos="sub", + # search_value=self._operate_sub_name(data, data_acc)) @screenshot_on_failure def _items_acc_del(self, item_value): @@ -544,7 +549,7 @@ class Accounts: # # print("加载完毕") # break self.first_row_checkBox_element = self.driver.find_element(By.XPATH,listPage_select_first_object_posXpath).click() # 勾选第一行元素 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 # return item_data @screenshot_on_failure @@ -609,9 +614,8 @@ class Accounts: # self.driver.isElementExist('//div[@class="EditDraw"]//div[@class="el-loading-mask"]') # if not self.driver.Exist: # break - self.driver.find_element(By.XPATH, '//div[@data-desc="exclude subObject"]/label').click() # 判断 Exclude Objects 按钮是否处于开启状态 - if self.driver.element_isExist(By.XPATH, urlGroup_ObjectDetailPage_excludeObjectsSwitch_enableStatus_posXpath): + if self.driver.element_isExist(By.XPATH, accGroup_ObjectDetailPage_excludeObjectsSwitch_enableStatus_posXpath): print("有数据新建") # 点击Exclude Objects 下的"+"按钮 self.driver.find_element(By.XPATH, @@ -643,10 +647,10 @@ class Accounts: # 点击侧滑子Create Account页面中Items下的"+"按钮 self.driver.find_element(By.XPATH, acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_itemsAddButton_posXpath).click() + for i in item_value: # 于侧滑子Create Account页面中Items下的item value输入框键入 item_value - self.driver.find_element(By.XPATH, - acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_itemsValueInput_posXpath).send_keys( - item_value) + self.driver.find_element(By.XPATH, + acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_itemsValueInput_posXpath).send_keys(i) # 点击侧滑子Create Account页面中Items下的保存按钮 self.driver.find_element(By.XPATH, acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_itemsValueSaveButton_posXpath).click() @@ -663,7 +667,8 @@ class Accounts: acc_item_input_xpath = "//input[@value='{}']".format(old_value) self.driver.find_element(By.XPATH, acc_item_input_xpath).clear() # 清空后键入新数据 - self.driver.find_element(By.XPATH, acc_item_input_xpath).send_keys(new_value) + for i in new_value: + self.driver.find_element(By.XPATH, acc_item_input_xpath).send_keys(i) # 保存 acc_item_save_btn_xpath = acc_ObjectDetailPage_itemSaveButton_poXpath self.driver.find_element(By.XPATH, acc_item_save_btn_xpath).click() @@ -675,8 +680,8 @@ class Accounts: self.driver.find_element(By.XPATH, acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_okButton_posXpath).click() # 点击确认弹窗的YES - self.driver.find_element(By.XPATH, - acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_okButton_yes_posXpath).click() + # self.driver.find_element(By.XPATH, + # acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_okButton_yes_posXpath).click() def _operate_exclude_items_modify(self, data, old_value, new_value): self._exclude_items_acc_modify(data, old_value, new_value) @@ -692,23 +697,23 @@ class Accounts: my_sub_item_name = self._operate_sub_name(data, old_value) time.sleep(0.5) # 点击要修改数据的编辑按钮操作 - sub_acc_object_edit_btn_xpath = "(//*[normalize-space(text())='{}']/ancestor::li[contains(@class,'item margindouble')]//i[contains(@class,'icon-Edit')])[1]".format( + sub_acc_object_edit_btn_xpath = "(//*[normalize-space(text())='{}']/ancestor::li[contains(@class,'list-none truncate relative')]//i[contains(@class,'icon-Edit')])[1]".format( my_sub_item_name) print("my_sub_item_name:{}".format(my_sub_item_name)) self.driver.find_element(By.XPATH, sub_acc_object_edit_btn_xpath).click() print("clicked sub_acc_object_edit_btn") # 进入Edit Interval侧滑页面 # 点击要修改数据的编辑按钮操作 - sub_acc_item_edit_btn_xpath = "(//*[normalize-space(text())='{}']/ancestor::*[@class='view-row']//i[contains(@class, 'iconfont icon-Edit')])[1]".format( - old_value) + sub_acc_item_edit_btn_xpath = '//div[@class="items"]//i[@class="iconfont icon-Edit"]' print("old_value:{}".format(old_value)) self.driver.implicitly_wait(6) self.driver.find_element(By.XPATH, sub_acc_item_edit_btn_xpath).click() # 清空要编辑修改数据的输入框内容 - sub_acc_item_input_xpath = '//div[@exprlistdata="{}"]//input'.format(old_value) + sub_acc_item_input_xpath = '//input[@class="MuiInput-input css-1u0jcuo"]' self.driver.find_element(By.XPATH, sub_acc_item_input_xpath).clear() # 清空后键入新数据 - self.driver.find_element(By.XPATH, sub_acc_item_input_xpath).send_keys(new_value) + for i in new_value: + self.driver.find_element(By.XPATH, sub_acc_item_input_xpath).send_keys(i) # 保存 sub_acc_item_save_btn_xpath = acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_itemsValueSaveButton_posXpath self.driver.find_element(By.XPATH, sub_acc_item_save_btn_xpath).click() @@ -718,7 +723,7 @@ class Accounts: my_exclude_item_name = self._operate_exclude_name(data, old_value) time.sleep(0.5) # 点击要修改数据的编辑按钮操作 - exclude_acc_object_edit_btn_xpath = "(//div[@data-desc='exclude subObject']//*[normalize-space(text())='{}']/ancestor::li[contains(@class,'item margindouble')]//i[contains(@class,'icon-Edit')])[1]".format( + exclude_acc_object_edit_btn_xpath = "(//*[normalize-space(text())='{}']/ancestor::li[contains(@class,'list-none truncate relative')]//i[contains(@class,'icon-Edit')])[1]".format( my_exclude_item_name) # print("my_sub_item_name:{}".format(my_exclude_item_name)) self.driver.find_element(By.XPATH, exclude_acc_object_edit_btn_xpath).click() @@ -731,10 +736,11 @@ class Accounts: self.driver.implicitly_wait(6) self.driver.find_element(By.XPATH, exclude_acc_item_edit_btn_xpath).click() # 清空要编辑修改数据的输入框内容 - exclude_acc_item_input_xpath = '//div[@exprlistdata="{}"]//input'.format(old_value) + exclude_acc_item_input_xpath = '//input[@class="MuiInput-input css-1u0jcuo"]' self.driver.find_element(By.XPATH, exclude_acc_item_input_xpath).clear() # 清空后键入新数据 - self.driver.find_element(By.XPATH, exclude_acc_item_input_xpath).send_keys(new_value) + for i in new_value: + self.driver.find_element(By.XPATH, exclude_acc_item_input_xpath).send_keys(i) # 保存 exclude_acc_item_save_btn_xpath = acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_itemsValueSaveButton_posXpath self.driver.find_element(By.XPATH, exclude_acc_item_save_btn_xpath).click() @@ -880,6 +886,7 @@ class Accounts: # 点击侧滑子Create Account页面中OK按钮 self.driver.find_element(By.XPATH, acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_okButton_posXpath).click() # 点击“OK”按钮 + self.driver.find_element(By.XPATH, '//i[@class="iconfont icon-Clear_aNormal close-icon"]').click() # 点击侧滑子Create Account页面确认弹窗的“Yes”按钮 # subCreateAccountDrawer_okButton_yes = self.driver.find_element(By.XPATH, # acc_ObjectGroupDetailPage_subObjects_subCreateAccountDrawer_okButton_yes_posXpath) @@ -929,8 +936,9 @@ class Accounts: data_acc = self.my_random.random_account() self._operate_exclude_items_modify(data, old_data, data_acc) if search_exclude_obj: - self._items_acc_search(search_pos="exclude", - search_value=self._operate_sub_name(data, data_acc)) + pass + # self._items_acc_search(search_pos="exclude", + # search_value=self._operate_sub_name(data, data_acc)) else: # 新增数据 asdnkj-> if data_acc == "[random]": # random->表示新增对象value值为随机 # if data_values[i].split("->")[0].strip() == "[random]": @@ -944,8 +952,9 @@ class Accounts: else: self._exclude_sub_objects_acc_add(data, data_acc) if search_exclude_obj: - self._items_acc_search(search_pos="exclude", - search_value=self._operate_sub_name(data, data_acc)) + pass + # self._items_acc_search(search_pos="exclude", + # search_value=self._operate_sub_name(data, data_acc)) @screenshot_on_failure def _query(self, data, search_type="Name", search_value=None, **kwargs): @@ -1076,6 +1085,7 @@ class Accounts: self.objects_po.clear_name_by_id(acc_objects_search_input_posXpath) if fuzzy_search: # 随机方式全局模糊搜索 acc_objects_search_input_elem.send_keys(search_value) # 键入搜索值 + self.driver.find_element(By.XPATH, listpage_globalSearch_posXpath).click() random_enter = random.randint(0, 1) # random_enter = 1 if random_enter == 0: # 使用ENTER 确认搜索值 @@ -1084,14 +1094,14 @@ class Accounts: acc_objects_search_input_elem.send_keys(Keys.ENTER) # 确认输入框内容 else: # 鼠标点击确认搜索值 print("随机全局模糊搜索-Mouse Click") - self.driver.find_element(By.XPATH, acc_listPage_object_fuzzySearch_posXpath).click() # 点击搜索按钮 + self.driver.find_element(By.XPATH, listpage_search_button_posXpath).click() # 点击搜索按钮 else: # 精确属性的搜索 acc_objects_search_input_elem.send_keys(search_value) time.sleep(1) if search_type == "Name" or search_type == "": self.driver.find_element(By.XPATH, acc_listPage_object_searchName_posId).click() - elif search_type == "ID": - self.driver.find_element(By.XPATH, acc_listPage_object_searchId_posId).click() + elif search_type == "UUID": + self.driver.find_element(By.XPATH, listPage_objectSearch_select_UUID_posXpath).click() elif search_type == "Details": self.driver.find_element(By.XPATH, acc_listPage_object_searchDetails_posId).click() elif search_type == "Description": @@ -1137,8 +1147,8 @@ class Accounts: else: # 勾选第一行元素 self.first_row_checkBox_element = self.driver.find_element(By.XPATH, - acc_listPage_first_row_checkBox_posXpath).click() - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + listPage_select_first_object_posXpath).click() + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 # 解析修改数据 self._operate_page(data, operation_type="edit", no_modify=False) # 进入Object详情页 @@ -1177,6 +1187,7 @@ class Accounts: acc_listPage_object_urls_delete_noButton_posXpath) # 删除object group对象后,再删除子object对象 while del_count > 0: + self.go_to_page() print("del 循环") try: if del_flag: @@ -1294,13 +1305,14 @@ class Accounts: self._create(data) # 新建 self._query(data) # 创建后查询 # 勾选被引用的对象 - first_quoted_object_elem_posXpath = "(//div[@data-field='reference_count']/button[number(text())=1]/../..//input[@class='MuiCheckbox-input css-1jj0cvj'])[1]" # 引用数大于0的第一个对象对应的勾选框元素Xpath - first_quoted_object_elem = self.driver.find_element(By.XPATH,first_quoted_object_elem_posXpath) # 引用数大于0的第一个对象对应的勾选框元素 + first_quoted_object_elem_posXpath = listpage_select_second_object_posXpath # 引用数大于0的第一个对象对应的勾选框元素Xpath + first_quoted_object_elem = self.driver.find_element(By.XPATH, + first_quoted_object_elem_posXpath) # 引用数大于0的第一个对象对应的勾选框元素 first_quoted_object_elem.click() # 点击勾选框 # 定位删除按钮元素,并判断是否可点击 - del_button_elem_clickable = self.objects_po.is_element_clickable(acc_listPage_deleteButton_posXpath, "XPATH") + del_button_elem_clickable = self.objects_po.is_element_clickable(listpage_delete_button_posXpath, "XPATH") print("当前元素是否可点击:{}".format(del_button_elem_clickable)) - assert del_button_elem_clickable == False, "校验失败!此时删除按钮可点击!" + assert del_button_elem_clickable == False, "校验删除按钮不可点击" @screenshot_on_failure def _reference_count(self): @@ -1462,6 +1474,76 @@ class Accounts: self.objects_po.Column_ele_ex(Column_text=self.objects_po.Column_text) assert self.objects_po.result + def export_multi_condition_test(self,data): + self.create(data) # 新建,新建后就是查询到该条数据的状态 + if data["SubType"] == "cancel_export": + #1、单个Object导出取消选中目标数据 + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() + self.pop_cancel_export_num() + self.create(data) + # 2、多个Object导出取消选中目标数据(2个) + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() + self.driver.find_element(By.XPATH, listpage_select_second_object_posXpath).click() + self.pop_cancel_export_num() + self._del(data) + elif data["SubType"] == "multi_export": + if data["multi_type"] == "all":#4、多选导出所有数据,校验行数 + self.create(data) + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() + self.driver.find_element(By.XPATH, listpage_select_second_object_posXpath).click() + self._export_objects1() + assert self.export_number == 2,"断言多选全部导出是否符合预期" + self._del(data) + elif data["multi_type"] == "part":#3、多选导出第一个数据 + self.create(data) + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() + self.driver.find_element(By.XPATH, listpage_select_second_object_posXpath).click() + self.pop_export_part() + assert self.export_number == 1,"断言单选导出数据是否符合预期" + time.sleep(2) + self.driver.refresh() + self._del(data) + else: #多选数据中有group时无法导出 + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() + self.driver.find_element(By.XPATH, listpage_select_second_object_posXpath).click() + #self.driver.find_element(By.XPATH,listPage_object_apns_exportButton_posXpath).click() + status = self.driver.isElementExist(Element='//span[@class="action-export inline-flex mr-[8px] "]//button[contains(@class, "disabled")]') + assert status == True + # export_tip = self.driver.find_element(By.XPATH,'//div[@class="el-message el-message--error"]/p').text + # assert export_tip.strip() == "Object group is not exportable" + self._del(data) + + + def pop_export_part(self): + self.driver.find_element(By.XPATH, listpage_export_button_posXpath).click() + self.driver.find_element(By.XPATH, '//div[@role="dialog"]//div[@data-rowindex="0"]//input').click() # 选择第一个 + self.export_total_str = self.driver.find_element(By.XPATH,'//div[@class="text-center color-[--color-text] mt-[12px] MuiBox-root css-0"]').text # 定位到导出个数的按钮 + self.export_total = re.search(r'\d+', self.export_total_str) # 正则表达式返回匹配的数字对象 + if self.export_total: + self.export_number = int(self.export_total.group()) # group()方法返回正则表达式匹配的字符串 + print(self.export_number) + + def pop_cancel_export_num(self): + self.driver.find_element(By.XPATH, listpage_export_button_posXpath).click() + self.driver.isElementExist(Element=port_listPage_object_exportPopYes_posXpath) + assert self.driver.Exist, "断言导出按钮是否置灰不展示" + self.driver.find_element(By.XPATH, listpage_export_no_button_posXpath).click() + self.driver.refresh() + + def _export_objects1(self): + self.driver.find_element(By.XPATH, listpage_export_button_posXpath).click() + time.sleep(3) + self.export_total_str = self.driver.find_element(By.XPATH,'//div[@class="text-center color-[--color-text] mt-[12px] MuiBox-root css-0"]').text + self.driver.find_element(By.XPATH, listPage_object_urls_exportPopYes_posXpath).click() + print(11111) + self.export_total =re.search(r'\d+',self.export_total_str) #正则表达式返回匹配的数字对象 + print(self.export_total_str) + print(2222) + print(self.export_total) + if self.export_total: + self.export_number = int(self.export_total.group())#group()方法返回正则表达式匹配的字符串 + print(self.export_number) + @screenshot_on_failure def _export_objects_and_verify(self, data): self._create(data) # 新建 @@ -1493,7 +1575,7 @@ class Accounts: :return: """ self.driver.implicitly_wait(5) - self.driver.find_element(By.XPATH, acc_listPage_first_row_checkBox_posXpath).click() + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() self.driver.find_element(By.XPATH, acc_listPage_object_exportButton_posXpath).click() self.driver.find_element(By.XPATH, acc_listPage_object_exportPopYes_posXpath).click() @@ -1528,8 +1610,8 @@ class Accounts: self._create(data) # 新建 self._query(data, need_verify_details=0) # 创建后查询 # 选中并进入编辑页面 - self.driver.find_element(By.XPATH, acc_listPage_first_row_checkBox_posXpath).click() # 勾选第一行元素 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() # 勾选第一行元素 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 # 点击Audit Logs self.driver.find_element(By.XPATH, acc_ObjectDetailPage_auditLogs_posXpath).click() self.driver.find_element(By.XPATH, @@ -1550,8 +1632,8 @@ class Accounts: # 修改 self._query(data, need_verify_details=0) # 查询 - self.driver.find_element(By.XPATH, acc_listPage_first_row_checkBox_posXpath).click() # 勾选第一行元素 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() # 勾选第一行元素 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 # 解析修改数据 self._operate_page(data, operation_type="edit") # 点击ok @@ -1561,8 +1643,8 @@ class Accounts: # self.driver.find_element(By.XPATH, acc_ObjectDetailPage_okButton_yes_posXpath).click() # 点击确认弹窗的“Yes”按钮 # print("保存") # 重新进入对象详情页查看audit logs - self.driver.find_element(By.XPATH, acc_listPage_first_row_checkBox_posXpath).click() # 勾选第一行元素 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() # 勾选第一行元素 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 self.driver.find_element(By.XPATH, acc_ObjectDetailPage_auditLogs_posXpath).click() # 点击Audit Logs self.driver.find_element(By.XPATH, acc_ObjectDetailPage_auditLogsDrawer_firstRowLog_checkBox_posXpath).click() # 勾选第一行log CheckBox @@ -1594,14 +1676,14 @@ class Accounts: try: self._query(data, need_verify_details=0) # 创建后查询 # 选中并进入编辑页面 - self.driver.find_element(By.XPATH, acc_listPage_first_row_checkBox_posXpath).click() # 勾选第一行元素 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() # 勾选第一行元素 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 # 校验Audit Logs self.objects_po.audit_log_check("Account Object", "Create") # 修改 self._query(data, need_verify_details=0) # 查询 - self.driver.find_element(By.XPATH, acc_listPage_first_row_checkBox_posXpath).click() # 勾选第一行元素 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() # 勾选第一行元素 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 # 解析修改数据 self._operate_page(data, operation_type="edit") # 点击ok @@ -1609,8 +1691,8 @@ class Accounts: # self.driver.find_element(By.XPATH, acc_ObjectDetailPage_okButton_yes_posXpath).click() # 点击确认弹窗的“Yes”按钮 # print("保存") # 重新进入对象详情页查看audit logs - self.driver.find_element(By.XPATH, acc_listPage_first_row_checkBox_posXpath).click() # 勾选第一行元素 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() # 勾选第一行元素 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 # 校验Audit Logs self.objects_po.audit_log_check("Account Object", "Edit") except Exception as e: @@ -1623,8 +1705,8 @@ class Accounts: def _verify_items_total(self, data): self._create(data) # 新建 self._query(data) # 创建后查询 - self.driver.find_element(By.XPATH, acc_listPage_first_row_checkBox_posXpath).click() # 勾选第一行元素 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() # 勾选第一行元素 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 # 进入编辑页面 items_total = self.driver.find_element(By.XPATH, acc_ObjectDetailPage_itemsTotal_posXpath).text # Total 值 @@ -2036,13 +2118,13 @@ class Accounts: self._create(data) # 编辑对象,并编辑item self._query(data, need_verify_details=0) # 搜索 - self.first_row_checkBox_element = self.driver.find_element(By.XPATH,acc_listPage_first_row_checkBox_posXpath).click() # 勾选第一行元素 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.first_row_checkBox_element = self.driver.find_element(By.XPATH,listPage_select_first_object_posXpath).click() # 勾选第一行元素 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 item_data = data["Items"][0] if item_data == "[random]": item_data = self.random_account - acc_item_edit_btn_xpath = "(//*[normalize-space(text())='{acc}']/ancestor::*[@class='view-row']//i[contains(@class, 'iconfont icon-Edit')])[1]".format(acc=item_data) + acc_item_edit_btn_xpath = "(//*[normalize-space(text())='{acc}']/ancestor::*[@class='css-103las5']//i[contains(@class, 'iconfont icon-Edit')])[1]".format(acc=item_data) self.driver.find_element(By.XPATH, acc_item_edit_btn_xpath).click() # 点击要修改数据的编辑按钮操作 # 校验此时ImportFromFile按钮不可点击 try: @@ -2188,7 +2270,7 @@ class Accounts: try: assert exclude_objects_switch_elem.get_attribute( - "class") == "el-switch is-checked", "Exclude Objects Switch未被开启!!" + "class") == "MuiButtonBase-root MuiSwitch-switchBase MuiSwitch-colorPrimary Mui-checked PrivateSwitchBase-root MuiSwitch-switchBase MuiSwitch-colorPrimary Mui-checked Mui-checked css-y2jqxi", "Exclude Objects Switch未被开启!!" print("Exclude Objects Switch成功开启") self.driver.isElementExist(accGroup_ObjectDetailPage_excludeObjects_itemsArea_posXpath) assert self.driver.Exist, "Exclude Objects未开启!!" @@ -2200,7 +2282,7 @@ class Accounts: exclude_objects_switch_elem.click() # 从开启到关闭 try: assert exclude_objects_switch_elem.get_attribute( - "class") == "el-switch", "Exclude Objects Switch未被关闭!!" + "class") == "MuiButtonBase-root MuiSwitch-switchBase MuiSwitch-colorPrimary PrivateSwitchBase-root MuiSwitch-switchBase MuiSwitch-colorPrimary css-y2jqxi", "Exclude Objects Switch未被关闭!!" print("Exclude Objects Switch成功关闭") self.driver.isElementExist(accGroup_ObjectDetailPage_excludeObjects_itemsArea_posXpath) assert not self.driver.Exist, "Exclude Objects未关闭!!" @@ -2217,10 +2299,10 @@ class Accounts: ###捕获error messages并校验 try: # self.driver.find_element(By.XPATH,acc_ObjectDetailPage_mainOkButton_posXpath).click() # 再次点击OK - error_message = self.driver.find_element(By.XPATH, '//*[@role="alert"]//p').text + error_message = self.driver.find_element(By.XPATH, '//div[@class="account-object-included_sub_object_uuids"]/div[2]').text print(error_message) # assert error_message == "Subordinate objects of an object cannot contain only excluded objects", "error_message 校验失败" - assert error_message in "Subordinate objects of an object cannot be null", "error_message 校验失败" + assert error_message in "Subordinate Objects cannot be empty", "error_message 校验失败" except Exception as e: print(e) raise @@ -2257,13 +2339,14 @@ class Accounts: try: time.sleep(3) self.driver.find_element(By.XPATH,acc_ObjectDetailPage_mainOkButton_posXpath).click() # 再次点击OK - error_message = self.driver.find_element(By.XPATH, '//*[@role="alert"]//p').text + error_message = self.driver.find_element(By.XPATH, '//div[@class="account-object-included_sub_object_uuids"]/div[2]').text print(error_message) # assert error_message == "Subordinate objects of an object cannot contain only excluded objects", "error_message 校验失败" - assert error_message in "Subordinate objects of an object cannot contain only excluded objects", "error_message 校验失败" + assert error_message in "Subordinate Objects cannot be empty", "error_message 校验失败" except Exception as e: print(e) raise + self._del(data) @screenshot_on_failure def _choose_single_object_method(self): @@ -2420,11 +2503,11 @@ class Accounts: if detail_type == 0: # Object详情页 # 选中第一个Object并进入其详情页 self.driver.find_element(By.XPATH, acc_listPage_object_tableCheckbox_firstSingleObject_posXpath).click() - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 elif detail_type == 1: # Object Group详情页 # 选中第一个Object Group并进入其详情页 self.driver.find_element(By.XPATH, acc_listPage_object_tableCheckbox_firstObjectGroup_posXpath).click() - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 else: # etail_type=2--非本Vsys的Object详情页 # 判断当前页有无非本Vsys的对象 @@ -2483,7 +2566,7 @@ class Accounts: # 选中第一个非本Vsys的Object Group或Object并进入其详情页 self.driver.find_element(By.XPATH, acc_listPage_object_tableCheckbox_firstNotLocalVsys_objectOrGroup_posXpath).click() - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # 点击edit按钮 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # 点击edit按钮 @screenshot_on_failure def _pure_operate_checkbox(self, selected_object_type, selected_objects_number): @@ -2790,7 +2873,7 @@ class Accounts: self._just_goto_accountsPage() self._create(data) self._simple_query(data, data["Name"]) - self.objects_po.View_statistics(edit_element=acc_listPage_editButton_posXpath) + self.objects_po.View_statistics(edit_element=listpage_edit_button_posXpath) except Exception as e: raise e finally: @@ -2924,13 +3007,13 @@ class Accounts: self._just_goto_accountsPage() # 查询object self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(Sou_ID_list[0]) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + self.driver.find_element(By.ID, listPage_objectSearch_select_UUID_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_button_posXpath).click() time.sleep(2) # 修改数据 if data["Type"] == 0: self.driver.find_element(By.XPATH, listPage_first_row_checkBox_posXpath).click() # 第一行数据前的复选框 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # edit按钮 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # edit按钮 self.objects_po.clear_Name(path=ObjectDetailPage_input_Name_posXpath) # 清除name self.driver.find_element(By.XPATH, ObjectDetailPage_input_Name_posXpath).send_keys( data["modify_sou_name"]) # 重新输入name @@ -2943,7 +3026,7 @@ class Accounts: self.driver.find_element(By.XPATH, ObjectDetailPage_okButton_yes_posXpath).click() else: self.driver.find_element(By.XPATH, listPage_first_row_checkBox_posXpath).click() # 第一行数据前的复选框 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # edit按钮 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # edit按钮 self.objects_po.clear_Name(path=ObjectDetailPage_input_Name_posXpath) # 清除name self.driver.find_element(By.XPATH, ObjectDetailPage_input_Name_posXpath).send_keys( data["modify_sou_name"]) # 重新输入name @@ -2962,7 +3045,7 @@ class Accounts: self._just_goto_accountsPage() # 查询object self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(Sou_ID_list[0]) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + self.driver.find_element(By.ID, listPage_objectSearch_select_UUID_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_button_posXpath).click() time.sleep(2) # 获取修改后的数据 @@ -3021,7 +3104,7 @@ class Accounts: self._just_goto_accountsPage() # 搜索目的vsys数据 self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(Des_ID_list[0]) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + self.driver.find_element(By.ID, listPage_objectSearch_select_UUID_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_button_posXpath).click() time.sleep(2) # 获取sync后的值 @@ -3034,7 +3117,7 @@ class Accounts: # 在目的vsys中修改 if data["Type"] == 0: self.driver.find_element(By.XPATH, listPage_first_row_checkBox_posXpath).click() # 第一行数据前的复选框 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # edit按钮 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # edit按钮 self.objects_po.clear_Name(path=ObjectDetailPage_input_Name_posXpath) # 清除name self.driver.find_element(By.XPATH, ObjectDetailPage_input_Name_posXpath).send_keys( data["modify_des_name"]) # 重新输入name @@ -3047,7 +3130,7 @@ class Accounts: self.driver.find_element(By.XPATH, ObjectDetailPage_okButton_yes_posXpath).click() else: self.driver.find_element(By.XPATH, listPage_first_row_checkBox_posXpath).click() # 第一行数据前的复选框 - self.driver.find_element(By.XPATH, acc_listPage_editButton_posXpath).click() # edit按钮 + self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() # edit按钮 self.objects_po.clear_Name(path=ObjectDetailPage_input_Name_posXpath) # 清除name self.driver.find_element(By.XPATH, ObjectDetailPage_input_Name_posXpath).send_keys( data["modify_des_name"]) # 重新输入name @@ -3077,7 +3160,7 @@ class Accounts: self._just_goto_accountsPage() # 搜索目的vsys数据 self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(Des_ID_list[0]) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + self.driver.find_element(By.ID, listPage_objectSearch_select_UUID_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_button_posXpath).click() time.sleep(2) # 再次获取sync后的值 @@ -3093,7 +3176,7 @@ class Accounts: def _delete_des(self, Des_ID_list, data): if data["Type"] == 0: self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(Des_ID_list[0]) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + self.driver.find_element(By.ID, listPage_objectSearch_select_UUID_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_button_posXpath).click() time.sleep(1) self.driver.find_element(By.XPATH, listPage_first_row_checkBox_posXpath).click() # 选择第一个对象 @@ -3103,7 +3186,7 @@ class Accounts: else: for id in Des_ID_list: self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(id) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + self.driver.find_element(By.ID, listPage_objectSearch_select_UUID_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_button_posXpath).click() time.sleep(1) self.driver.find_element(By.XPATH, listPage_first_row_checkBox_posXpath).click() # 选择第一个对象 @@ -3127,7 +3210,7 @@ class Accounts: def _delete_source(self, Sou_ID_list, data): if data["Type"] == 0: self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(Sou_ID_list[0]) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + self.driver.find_element(By.ID, listPage_objectSearch_select_UUID_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_button_posXpath).click() time.sleep(1) self.driver.find_element(By.XPATH, listPage_first_row_checkBox_posXpath).click() # 选择第一个对象 @@ -3137,7 +3220,7 @@ class Accounts: else: for id in Sou_ID_list: self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(id) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + self.driver.find_element(By.ID, listPage_objectSearch_select_UUID_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_button_posXpath).click() time.sleep(1) self.driver.find_element(By.XPATH, listPage_first_row_checkBox_posXpath).click() # 选择第一个对象 @@ -3215,7 +3298,7 @@ class Accounts: self._just_goto_accountsPage() for id in Des_ID_list: self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(id) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + self.driver.find_element(By.ID, listPage_objectSearch_select_UUID_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_button_posXpath).click() self.driver.find_element(By.XPATH, listPage_first_row_checkBox_posXpath).click() # 选择第一个对象 # 确认删除 @@ -3228,7 +3311,7 @@ class Accounts: self._just_goto_accountsPage() for id in Sou_ID_list: self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(id) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + self.driver.find_element(By.ID, listPage_objectSearch_select_UUID_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_button_posXpath).click() time.sleep(1) self.driver.find_element(By.XPATH, listPage_first_row_checkBox_posXpath).click() # 选择第一个对象 @@ -3276,7 +3359,7 @@ class Accounts: search_value = self.my_sub_item_name # 进入drawer_search页面 ##勾选 - self.driver.find_element(By.XPATH, acc_listPage_first_row_checkBox_posXpath).click() + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() ##点击编辑按钮 self.driver.find_element(By.XPATH, listpage_edit_button_posXpath).click() ##点击 add button展开drawer_search @@ -3287,7 +3370,7 @@ class Accounts: self.driver.find_element(By.XPATH, groupObjectDetailPage_addSubObjecDrawer_searchInput_posXpath).send_keys(self.my_random.random_number() + Keys.ENTER) assert self.driver.find_element(By.XPATH,groupObjectDetailPage_addSubObjecDrawer_totalText_posXpath).get_attribute("innerHTML") == "Total:0" # 正确校验 - self.driver.find_element(By.XPATH, groupObjectDetailPage_addSubObjecDrawer_searchInput_posXpath).clear() + self.driver.find_element(By.XPATH, '//i[@class="iconfont icon-Delete_X text-[16px] mt-[-1px] cursor-pointer"]').click() self.driver.find_element(By.XPATH, groupObjectDetailPage_addSubObjecDrawer_searchInput_posXpath).send_keys(search_value + Keys.ENTER) # resulte_text = self.driver.find_element(By.XPATH,"//div[@class='IpItems list-box']//ul[@class='row-container tableList']/li[1]/div").text # 等待查询结果加载 @@ -3295,7 +3378,7 @@ class Accounts: self.wait.until(EC.visibility_of_element_located((By.XPATH, item_result_pos))) total_text = self.driver.find_element(By.XPATH,groupObjectDetailPage_addSubObjecDrawer_totalText_posXpath).get_attribute("innerHTML") assert total_text == "Total:1", "搜索结果错误,此时获取到的文本为{}".format(total_text) - self.driver.find_element(By.XPATH,acc_ObjectDetailPage_cancel_posXpath).click() + self.driver.find_element(By.XPATH, '//i[@class="iconfont icon-Clear_aNormal close-icon"]').click() except Exception as e: raise e finally: @@ -3303,7 +3386,63 @@ class Accounts: self._del(data, search_value=self.my_item_name, del_flag=1) def _different_vsys_check(self, data): - self.objects_po.different_vsys_check("accounts", data) + self._create(data) + self.query(data) + # 获取UIAutoTestVsys的Object信息 + self.uiAutoTestVsys_object = dict(self.objects_po.table_dict) + print(self.uiAutoTestVsys_object) + # 切换Vsys至Vsys0 + self.profile_pub.change_vsys(vsys_name="vsys0") + self._create(data) + self.query(data) + self.vsys0_object = dict(self.objects_po.table_dict) + self._query(data) + time.sleep(2) + self.view_check("vsys0") + self.profile_pub.change_vsys(vsys_name="PerformanceTestVsys") + self._query(data) + time.sleep(2) + self.view_check("PerformanceTestVsys") + self.profile_pub.change_vsys(vsys_name="UIAutoTestVsys") + self._query(data) + time.sleep(2) + self.view_check("UIAutoTestVsys") + self.profile_pub.change_vsys(vsys_name="vsys0") + self._del(data) + + def view_check(self, vsys_name): + time.sleep(1) + total = self.driver.find_element(By.XPATH, "//span[contains(text(),'Total')]").text + count = total.split("Total:") + if vsys_name == "PerformanceTestVsys": + assert int(count[1]) == 1 + assert self.driver.find_element(By.XPATH, listPage_First_object_ID_posXpath).text == self.vsys0_object["UUID"] + elif vsys_name == "vsys0": + assert int(count[1]) == 1 + assert self.driver.find_element(By.XPATH, listPage_First_object_ID_posXpath).text == self.vsys0_object["UUID"] + # assert self.driver.find_element(By.XPATH, listPage_Second_object_ID_posXpath).text == self.uiAutoTestVsys_object["ID"] + # self.driver.find_element(By.XPATH,"//*[@id='ly-table1-listcontent']//tbody/tr[2]//span[@class='el-checkbox__inner']").click() + # self.driver.find_element(By.XPATH,"//button[@id='appEdit-_OperateBtns_ElRow_Objects_port_Home_App_anonymousComponent']//p[normalize-space(text()) = 'View']").click() + # assert len(self.driver.find_elements(By.XPATH, '//div[@class="IconBtn disabled-btn"]')) == 3 + # self.driver.isElementExist(port_ObjectDetailPage_mainOkButton_posXpath) + # assert self.driver.Exist == False + # self.driver.find_element(By.XPATH,port_ObjectPage_button_cancel_posXpath).click() + elif vsys_name == "UIAutoTestVsys": + assert int(count[1]) == 2 + assert self.driver.find_element(By.XPATH, listPage_First_object_ID_posXpath).text == self.vsys0_object["UUID"] + assert self.driver.find_element(By.XPATH, listPage_Second_object_ID_posXpath).text == self.uiAutoTestVsys_object["UUID"] + self.driver.find_element(By.XPATH, listPage_select_first_object_posXpath).click() + self.driver.find_element(By.XPATH, listPage_view_button_posXpath).click() + # add_item_disable = self.driver.element_isExist(by=By.XPATH,value="//div[@class='object-item-add']/div[@class='IconBtn disabled-btn']") + # edit_item_disable = self.driver.element_isExist(by=By.XPATH,value="//div[@class='list-container']//div[@class='IconBtn disabled-btn'][1]") + # del_item_disable = self.driver.element_isExist(by=By.XPATH,value="//div[@class='list-container']//div[@class='IconBtn disabled-btn'][2]") + # assert add_item_disable == edit_item_disable == del_item_disable == True + self.driver.isElementExist(port_ObjectDetailPage_mainOkButton_posXpath) + assert self.driver.Exist == False + self.driver.find_element(By.XPATH, port_ObjectPage_button_cancel_posXpath).click() + self.driver.find_element(By.XPATH, listpage_select_second_object_posXpath).click() + self.driver.find_element(By.XPATH, listpage_delete_button_posXpath).click() + self.driver.find_element(By.XPATH, port_listPage_deleteYes_posXpath).click() def _audit_log_all_operation(self, data): self._create(data) @@ -3328,14 +3467,12 @@ class Accounts: # 获取页面元素 self._just_goto_accountsPage() my_table_dict = self.objects_po.extract_ele() - details_first_value = self.driver.find_element(By.XPATH, - '(//div[@class="itemDetails cursor"][1]/span)[1]').text for search_type in search_type_list: - if search_type == "ID": + if search_type == "UUID": self.driver.find_element(By.XPATH,listpage_search_box_posXpath).click() self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys( - my_table_dict['ID']) - self.driver.find_element(By.ID, acc_listPage_object_searchId_posId).click() + my_table_dict['UUID']) + self.driver.find_element(By.XPATH, listPage_objectSearch_select_UUID_posXpath).click() elif search_type == "Name": self.driver.find_element(By.XPATH,listpage_search_box_posXpath).click() input_value = self.operate_input_value_4_multiple_search(my_table_dict['Name']) @@ -3346,16 +3483,14 @@ class Accounts: input_value = self.operate_input_value_4_multiple_search(my_table_dict['Description']) self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(input_value) self.driver.find_element(By.ID, acc_listPage_object_searchDescription_posId).click() - elif search_type == "Details": - self.driver.find_element(By.XPATH,listpage_search_box_posXpath).click() - input_value = self.operate_input_value_4_multiple_search(details_first_value) - self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(input_value) - self.driver.find_element(By.ID, acc_listPage_object_searchDetails_posId).click() + # elif search_type == "Details": + # self.driver.find_element(By.XPATH,listpage_search_box_posXpath).click() + # input_value = self.operate_input_value_4_multiple_search(details_first_value) + # self.driver.find_element(By.XPATH,listpage_search_box_posXpath).send_keys(input_value) + # self.driver.find_element(By.ID, acc_listPage_object_searchDetails_posId).click() search_button = self.driver.find_element(By.XPATH,listpage_search_button_posXpath) self.driver.execute_script("arguments[0].scrollIntoView();", search_button) search_button.click() - - self._query_verify(search_type="Details", search_value=details_first_value, need_verify_vsysID=0) except Exception as e: raise e finally: @@ -3392,28 +3527,27 @@ if __name__ == '__main__': acc = Accounts(demo_fixture=driver) driver.implicitly_wait(5) - driver.get("http://192.168.45.158") + driver.get("http://192.168.44.72") # driver.get("http://192.168.42.49") driver.maximize_window() - driver.find_element(By.XPATH, '//*[@id="root"]/div/div[2]/div/div[1]/input').send_keys("admin") - driver.find_element(By.XPATH, '//*[@id="root"]/div/div[2]/div/div[2]/input').send_keys("admin") - driver.find_element(By.XPATH, '//*[@id=":r0:"]').click() + driver.find_element(By.XPATH, '//input[@placeholder="User name"]').send_keys("guouitest") + driver.find_element(By.XPATH, '//input[@placeholder="Password"]').send_keys("jMIfnvhc1U") + driver.find_element(By.XPATH, '//button[@class="MuiButtonBase-root MuiButton-root MuiLoadingButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeLarge MuiButton-containedSizeLarge MuiButton-colorPrimary MuiButton-root MuiLoadingButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeLarge MuiButton-containedSizeLarge MuiButton-colorPrimary !bg-[#4487d4] css-zeizzp"]').click() # 切换Vsys # profile_pub = ProfilesPublicOperations(driver) # profile_pub.change_vsys(vsys_name='UIAutoTestVsys') - acc.acc_case(data= + acc._different_vsys_check(data= { - "ids": "Created By作为搜索条件进行模糊查询-T074-4", + "ids": "test_different_vsys_check", "Model": "create", "Type": 0, - "Name": "test_ui_test_ui323", - "Search type": "Created By", + "Search type": "Name", + "Name": "", "Items": [ - "[random]->" + "^skkj$" ], - "Description": "", - "Subordinate Objects": "" - }, + "Description": "" + } ) time.sleep(3) driver.quit() |
