From ddf66cf155af3805323ec55ae6814f2d23d40c07 Mon Sep 17 00:00:00 2001
From: 阳洁 <2077506045@qq.com>
Date: 星期五, 28 七月 2023 18:42:30 +0800
Subject: [PATCH] 测评系统自动测试

---
 po/test_package_list_page.py |  514 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 295 insertions(+), 219 deletions(-)

diff --git a/po/test_package_list_page.py b/po/test_package_list_page.py
index 6725bb6..d7f54cf 100644
--- a/po/test_package_list_page.py
+++ b/po/test_package_list_page.py
@@ -1,6 +1,7 @@
 from base.base_page import BasePage
 from selenium.webdriver.common.by import By
-from elements.test_package_list_elements import TestPackageListElements as PackageList
+from elements.test_package_list_elements import TestPackageListElements
+from datetime import datetime
 import time
 
 
@@ -9,66 +10,252 @@
     娴嬭瘯鍖呭垪琛ㄩ〉闈�
     """
 
+    es = TestPackageListElements
+
     def __init__(self, driver):
         """鍒濆鍖栨椂灏唅frame鍒囨崲鍒板綋鍓嶉〉闈�"""
         super().__init__(driver)
         try:
             self.driver.switch_to.default_content()
-            self.switch_iframe(PackageList.this_iframe)
+            self.switch_iframe(self.es.this_iframe)
         except:
             pass
 
-    def create_btn(self):
+    def create_package(self, data: dict):
         """
-        鐐瑰嚮鍒涘缓鎸夐挳
+        鍒涘缓娴嬭瘯鍖�
+        :param data: 娴嬭瘯鍖呭弬鏁�
         :return:
         """
-        self.click_wait(PackageList.create_btn)
-        # 鍒囨崲鍒癮dd绐楀彛鐨刬frame
-        self.switch_iframe(PackageList.add_iframe)
+        # 鐐瑰嚮鍒涘缓鎸夐挳
+        self.click(self.es.create_btn)
+        # 鍒囨崲鍒癮dd鐨刬frame
+        self.switch_iframe(self.es.add_iframe)
+        # 鑾峰彇褰撳墠鏃堕棿
+        current_time = datetime.now()
+        # 杞崲涓哄瓧绗︿覆
+        time_str = current_time.strftime("%Y%m%d%H%M%S")
+        # 鍒涘缓娴嬭瘯鍖呭~鍐欑殑鍙傛暟
+        # 娴嬭瘯鍖呭悕绉�
+        test_package_name = data["product"] + "鑷姩娴嬭瘯鍖�-" + time_str
+        # 濉啓娴嬭瘯鍖呭悕绉�
+        self.fill(self.es.add_testPackageName_input, test_package_name, timeout=10)
+        # 濉啓鎶ュ憡浼佷笟鍚嶇О
+        self.fill(self.es.add_reportCompanyName_input, data["company"], timeout=10)
+        # 閫夋嫨娴嬭瘯鍖呯被鍨�
+        self.select(self.es.add_testPackageType_select, self.es.add_testPackageType_option, data["type"])
+        # 閫夋嫨鍖哄煙
+        self.select(self.es.add_testPackageArea_select, self.es.add_testPackageArea_option, data["area"])
+        # 閫夋嫨浜у搧鍖�
+        self.prodTree_select(data["product"])
+        # 杈撳叆hr閭
+        self.fill(self.es.add_hrEmail_input, data["hrEmail"])
+        # 杈撳叆鏈夋晥鏈�
+        self.fill(self.es.add_invalidTime, data["invalid"])
+        # 鐐瑰嚮鏈夋晥鏈熻緭鍏ユ鏉ラ殣钘忔棩鏈熼�夋嫨鍣�
+        self.click(self.es.add_invalidTime)
+        # 閫夋嫨閭�璇烽偖浠惰瑷�绫诲瀷
+        self.select(self.es.add_templateLangType_select, self.es.add_templateLangType_option, data["memberLang"])
+        # 閫夋嫨HR閭欢璇█绫诲瀷
+        self.select(self.es.add_hrTemplateLangType_select, self.es.add_hrTemplateLangType_option, data["hrReportLang"])
+        # 閫夋嫨鎶ュ憡妯℃澘
+        self.select(self.es.add_reportTemplateId_select, self.es.add_reportTemplateId_option, data["reportTemplate"])
 
-    def delete_package(self):
+        # 鍒ゆ柇鏄惁涓哄伐浣滃垎鏋愬寘
+        if data["type"] == "宸ヤ綔鍒嗘瀽鍖�":
+            # 濡傛灉鏄垯濉啓
+            # 杈撳叆瑕佽瘎浠风殑宀椾綅
+            self.fill(self.es.add_position_input, data["position"])
+            # 杈撳叆鑱屼笟澶х被
+            self.fill(self.es.add_professionalCategory_input, data["professionalCategory"])
+            # 杈撳叆涓婄骇宀椾綅
+            self.fill(self.es.add_superiorPosition_input, data["superiorPosition"])
+
+        # 鐐瑰嚮娴嬭瘯鑰呮帴鏀舵姤鍛�
+        self.click(self.es.add_autoSendReport_checkbox)
+        # 閫夋嫨娴嬭瘯鑰呮姤鍛婇偖绠辫瑷�绫诲瀷
+        self.select(self.es.add_memberReportLangType_select, self.es.add_memberReportLangType_option,
+                    data["memberReportLang"])
+        # 鍥炲埌涓婁竴灞俰frame
+        self.switch_parent_iframe()
+        # 鐐瑰嚮纭鎸夐挳
+        self.click(self.es.add_confirm_btn)
+        return test_package_name
+
+    def edit_package(self, data: dict):
+        """
+        淇敼娴嬭瘯鍖�
+        :param data:
+        :return:
+        """
+        # 鍒囨崲鍒癳dit鐨刬frame
+        self.switch_iframe(self.es.edit_iframe)
+        # 鑾峰彇褰撳墠鏃堕棿
+        current_time = datetime.now()
+        # 杞崲涓哄瓧绗︿覆
+        time_str = current_time.strftime("%Y%m%d%H%M%S")
+        # 鍒涘缓娴嬭瘯鍖呭~鍐欑殑鍙傛暟
+        # 娴嬭瘯鍖呭悕绉�
+        test_package_name = data["product"] + "鑷姩娴嬭瘯鍖�-" + time_str
+        # 濉啓娴嬭瘯鍖呭悕绉�
+        self.fill(self.es.add_testPackageName_input, test_package_name, timeout=10)
+        # 濉啓鎶ュ憡浼佷笟鍚嶇О
+        self.fill(self.es.add_reportCompanyName_input, data["company"], timeout=10)
+        # 閫夋嫨鍖哄煙
+        self.select(self.es.add_testPackageArea_select, self.es.add_testPackageArea_option, data["area"])
+        # 杈撳叆hr閭
+        self.fill(self.es.add_hrEmail_input, data["hrEmail"])
+        # 杈撳叆鏈夋晥鏈�
+        self.fill(self.es.add_invalidTime, data["invalid"])
+        # 鐐瑰嚮鏈夋晥鏈熻緭鍏ユ鏉ラ殣钘忔棩鏈熼�夋嫨鍣�
+        self.click(self.es.add_invalidTime)
+        # 閫夋嫨閭�璇烽偖浠惰瑷�绫诲瀷
+        self.select(self.es.add_templateLangType_select, self.es.add_templateLangType_option, data["memberLang"])
+        # 閫夋嫨HR閭欢璇█绫诲瀷
+        self.select(self.es.add_hrTemplateLangType_select, self.es.add_hrTemplateLangType_option, data["hrReportLang"])
+        # 閫夋嫨鎶ュ憡妯℃澘
+        self.select(self.es.add_reportTemplateId_select, self.es.add_reportTemplateId_option, data["reportTemplate"])
+
+        # 鍒ゆ柇鏄惁涓哄伐浣滃垎鏋愬寘
+        if data["type"] == "宸ヤ綔鍒嗘瀽鍖�":
+            # 濡傛灉鏄垯濉啓
+            # 杈撳叆瑕佽瘎浠风殑宀椾綅
+            self.fill(self.es.add_position_input, data["position"])
+            # 杈撳叆鑱屼笟澶х被
+            self.fill(self.es.add_professionalCategory_input, data["professionalCategory"])
+            # 杈撳叆涓婄骇宀椾綅
+            self.fill(self.es.add_superiorPosition_input, data["superiorPosition"])
+        # 閫夋嫨娴嬭瘯鑰呮姤鍛婇偖绠辫瑷�绫诲瀷
+        self.select(self.es.add_memberReportLangType_select, self.es.add_memberReportLangType_option,
+                    data["memberReportLang"])
+        # 鍥炲埌涓婁竴灞俰frame
+        self.switch_parent_iframe()
+        # 鐐瑰嚮纭鎸夐挳
+        self.click(self.es.edit_confirm_btn)
+        return test_package_name
+
+    def verify_edit_success(self, package_name, data):
+        """
+        楠岃瘉淇敼鏄惁鎴愬姛
+        :param package_name: 娴嬭瘯鍖呭悕绉�
+        :param data:
+        :return:
+        """
+        # 鍕鹃�夊搴旀祴璇曞寘
+        self.select_package_checkbox(package_name)
+        # 鐐瑰嚮淇敼鎸夐挳
+        self.click(self.es.edit_btn)
+        time.sleep(2)
+        # 鍒囨崲鍒癳dit鐨刬frame
+        self.switch_iframe(self.es.edit_iframe)
+        # 鍒ゆ柇娴嬭瘯鍖呭悕绉�
+        flag = self.equals(self.es.add_testPackageName_input, package_name)
+        if not flag:
+            return flag
+        # 鍒ゆ柇鎶ュ憡浼佷笟鍚嶇О
+        flag = self.equals(self.es.add_reportCompanyName_input, data["company"])
+        if not flag:
+            return flag
+        # 鍒ゆ柇绫诲瀷
+        flag = self.equals(self.es.add_testPackageType_text, data["type"])
+        if not flag:
+            return flag
+        # 鍒ゆ柇鍖哄煙
+        flag = self.equals(self.es.add_testPackageArea_text, data["area"])
+        if not flag:
+            return flag
+        # 鍒ゆ柇浜у搧鍖�
+        flag = self.equals(self.es.add_prodTree_input, data["product"])
+        if not flag:
+            return flag
+        # 鍒ゆ柇HR鎺ユ敹鎶ュ憡閭
+        flag = self.equals(self.es.add_hrEmail_input, data["hrEmail"])
+        if not flag:
+            return flag
+        # 鍒ゆ柇鏈夋晥鏈�
+        flag = self.equals(self.es.add_invalidTime, data["invalid"])
+        if not flag:
+            return flag
+
+        # 鍒ゆ柇璇█绫诲瀷
+        text = "浜茬埍鐨�"
+        if data["memberLang"] == "English":
+            text = "Dear"
+        elif data["memberLang"] == "喙勦笚喔�":
+            text = "喙�喔`傅喔⑧笝"
+        # 鍒ゆ柇娴嬭瘯鑰呴個璇峰唴瀹�
+        flag = self.contains(self.es.add_templateLangType_text, text)
+        if not flag:
+            return flag
+
+        # 鍒ゆ柇璇█绫诲瀷
+        text = "浜茬埍鐨�"
+        if data["hrReportLang"] == "English":
+            text = "Dear HR Staff at"
+        elif data["hrReportLang"] == "喙勦笚喔�":
+            text = "喙�喔`傅喔⑧笝喔澿箞喔侧涪喔氞父喔勦竸喔ム競喔竾"
+        # 鍒ゆ柇HR閭欢鍐呭
+        flag = self.contains(self.es.add_hrTemplateLangType_text, text)
+        if not flag:
+            return flag
+
+        # 鍒ゆ柇鎶ュ憡妯℃澘
+        flag = self.contains(self.es.add_reportTemplateId_text, data["reportTemplate"])
+        if not flag:
+            return flag
+
+        # 鍒ゆ柇鏄惁涓哄伐浣滃垎鏋愬寘
+        if data["type"] == "宸ヤ綔鍒嗘瀽鍖�":
+            # 鍒ゆ柇瑕佽瘎浠风殑宀椾綅
+            flag = self.equals(self.es.add_position_input, data["position"])
+            if not flag:
+                return flag
+            # 鍒ゆ柇鑱屼笟澶х被
+            flag = self.equals(self.es.add_professionalCategory_input, data["professionalCategory"])
+            if not flag:
+                return flag
+            # 鍒ゆ柇涓婄骇宀椾綅
+            flag = self.equals(self.es.add_superiorPosition_input, data["superiorPosition"])
+            if not flag:
+                return flag
+
+        # 鍒ゆ柇璇█绫诲瀷
+        text = "浜茬埍鐨�"
+        if data["memberReportLang"] == "English":
+            text = "Dear HR Staff at"
+        elif data["memberReportLang"] == "喙勦笚喔�":
+            text = "喙�喔`傅喔⑧笝"
+        # 鍒ゆ柇娴嬭瘯鑰�
+        flag = self.contains(self.es.add_memberReportLangType_text, text)
+        if not flag:
+            return flag
+
+        # 鍒ゆ柇浜哄彛瀛︾紪鐮�
+        if "checkCode" in data:
+            # 鏍¢獙琚嬀閫夌殑浜哄彛閫夌紪鐮�
+            flag = self.verify_code_checked(data["checkCode"])
+            if not flag:
+                return flag
+        if "uncheckCode" in data:
+            # 鏍¢獙琚彇娑堝嬀閫夌殑浜哄彛閫夌紪鐮�
+            flag = self.verify_code_unchecked(data["checkCode"])
+            if not flag:
+                return flag
+
+        return flag
+
+
+    def delete_package(self, package_name):
         """
         鍒犻櫎娴嬭瘯鍖�
         :return:
         """
+        # 鍕鹃�夊搴旀祴璇曞寘
+        self.select_package_checkbox(package_name)
         # 鐐瑰嚮鍒犻櫎鎸夐挳
-        self.click_wait(PackageList.delete_btn)
+        self.click(self.es.delete_btn)
         # 鐐瑰嚮纭鎸夐挳
-        self.click_wait(PackageList.delete_confirm_btn)
-
-    def testPackageName_input(self, testPackageName):
-        """
-        杈撳叆娴嬭瘯鍖呭悕绉�
-        :param testPackageName: 娴嬭瘯鍖呭悕绉�
-        :return:
-        """
-        self.send_text_wait(testPackageName, PackageList.add_testPackageName_input)
-
-    def reportCompanyName_input(self, reportCompanyName):
-        """
-        杈撳叆鎶ュ憡浼佷笟鍚嶇О
-        :param reportCompanyName: 鎶ュ憡浼佷笟鍚嶇О
-        :return:
-        """
-        self.send_text_wait(reportCompanyName, PackageList.add_reportCompanyName_input)
-
-    def testPackageType_select(self, testPackageType):
-        """
-        閫夋嫨娴嬭瘯鍖呯被鍨�
-        :param testPackageType:
-        :return:
-        """
-        # 鐐瑰嚮涓嬫媺妗�
-        self.click_wait(PackageList.add_testPackageType_select)
-        # 鑾峰彇鎵�鏈夐�夐」
-        options = self.get_elements_wait(PackageList.add_testPackageType_option)
-        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ョ殑閫夐」鐩哥瓑
-        for opt in options:
-            if opt.text == testPackageType:
-                # 鐩哥瓑鍒欑偣鍑昏閫夐」
-                opt.click()
-                break
+        self.click(self.es.delete_confirm_btn)
 
     def prodTree_select(self, prodName):
         """
@@ -77,12 +264,11 @@
         :return:
         """
         # 鐐瑰嚮鏌ヨ鎸夐挳
-        self.click_wait(PackageList.add_prodTree_btn)
+        self.click(self.es.add_prodTree_btn)
         # 鍒囨崲鍒皃rodTree鐨刬frame
-        self.switch_iframe_wait(PackageList.prodTree_iframe)
-        time.sleep(2)
+        self.switch_iframe_wait(self.es.prodTree_iframe)
         # 鑾峰彇鎵�鏈夐�夐」
-        options = self.get_elements_wait(PackageList.prodTree_option)
+        options = self.get_eles(self.es.prodTree_option, timeout=10)
         # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ラ�夐」鐩哥瓑
         for opt in options:
             if opt.text == prodName:
@@ -91,137 +277,7 @@
         # 鍒囨崲鍒颁笂涓�灞傜殑iframe
         self.switch_parent_iframe()
         # 鐐瑰嚮纭鎸夐挳
-        self.click_wait(PackageList.prodTree_confirm_btn)
-
-    def hrReportEmail_input(self, hr_email):
-        """
-        杈撳叆HR鎺ユ敹鎶ュ憡閭
-        :param hr_email:
-        :return:
-        """
-        self.send_text_wait(hr_email, PackageList.add_hrEmail_input)
-
-    def invalidTime_input(self, invalid_time):
-        """
-        杈撳叆鏈夋晥鏈�
-        :param invalid_time:
-        :return:
-        """
-        self.send_text_wait(invalid_time, PackageList.add_invalidTime)
-        self.click_wait(PackageList.add_invalidTime)
-
-    def testTemplateLangType_select(self, text):
-        """
-        閫夋嫨娴嬭瘯鑰呴個璇烽偖浠跺唴瀹规ā鏉�
-        :param text: 璇█绫诲瀷锛屽彲浠ラ�夋嫨澶氫釜锛屼娇鐢� , 鍒嗛殧
-        :return:
-        """
-        # 鍒嗗壊text
-        lang_types = text.split(",")
-        # 鐐瑰嚮涓嬫媺妗�
-        self.click_wait(PackageList.add_templateLangType_select)
-        # 鑾峰彇鎵�鏈夐�夐」
-        options = self.get_elements_wait(PackageList.add_templateLangType_option)
-        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ョ殑閫夐」鐩哥瓑
-        for opt in options:
-            for lang_type in lang_types:
-                if opt.text == lang_type:
-                    # 鐩哥瓑鍒欑偣鍑昏閫夐」
-                    opt.click()
-                    break
-
-    def hrTemplateLangType_select(self, text):
-        """
-        閫夋嫨HR閭欢鍐呭妯℃澘
-        :param text: 璇█绫诲瀷锛屽彲浠ラ�夋嫨澶氫釜锛屼娇鐢� , 鍒嗛殧
-        :return:
-        """
-        # 鍒嗗壊text
-        lang_types = text.split(",")
-        # 鐐瑰嚮涓嬫媺妗�
-        self.click_wait(PackageList.add_hrTemplateLangType_select)
-        # 鑾峰彇鎵�鏈夐�夐」
-        options = self.get_elements_wait(PackageList.add_hrTemplateLangType_option)
-        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ョ殑閫夐」鐩哥瓑
-        for opt in options:
-            for lang_type in lang_types:
-                if opt.text == lang_type:
-                    # 鐩哥瓑鍒欑偣鍑昏閫夐」
-                    opt.click()
-                    break
-
-    def reportTemplate_select(self, text):
-        """
-        鎶ュ憡妯℃澘閫夋嫨
-        :param text: 妯℃澘锛屽彲浠ラ�夋嫨澶氫釜锛屼娇鐢� , 鍒嗛殧
-        :return:
-        """
-        # 鍒嗗壊text
-        templates = text.split(",")
-        # 鐐瑰嚮涓嬫媺妗�
-        self.click_wait(PackageList.add_reportTemplateId_select)
-        # 鑾峰彇鎵�鏈夐�夐」
-        options = self.get_elements_wait(PackageList.add_reportTemplateId_option)
-        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ョ殑閫夐」鐩哥瓑
-        for opt in options:
-            for template in templates:
-                if opt.text == template:
-                    # 鐩哥瓑鍒欑偣鍑昏閫夐」
-                    opt.click()
-                    break
-        # 鍐嶆鐐瑰嚮涓嬫媺妗�
-        self.click_wait(PackageList.add_reportTemplateId_select)
-
-    def position_input(self, text):
-        """
-        杈撳叆瑕佽瘎浠风殑宀椾綅
-        :param text:
-        :return:
-        """
-        self.send_text_wait(text, PackageList.add_position_input)
-
-    def professionalCategory_input(self, text):
-        """
-        杈撳叆鑱屼笟澶х被
-        :param text:
-        :return:
-        """
-        self.send_text_wait(text, PackageList.add_professionalCategory_input)
-
-    def superiorPosition_input(self, text):
-        """
-        杈撳叆涓婄骇宀椾綅
-        :param text:
-        :return:
-        """
-        self.send_text_wait(text, PackageList.add_superiorPosition_input)
-
-    def autoSendReport_checkbox(self):
-        """
-        鐐瑰嚮娴嬭瘯鑰呮帴鏀舵姤鍛�
-        :return:
-        """
-        self.click_wait(PackageList.add_autoSendReport_checkbox)
-
-    def memberReportLangType_select(self, text):
-        """
-        娴嬭瘯鑰呮姤鍛婇偖浠惰瑷�绫诲瀷
-        :param text: 璇█绫诲瀷锛屽彲浠ラ�夋嫨澶氫釜锛屼娇鐢� , 鍒嗛殧
-        :return:
-        """
-        # 鍒嗗壊text
-        lang_types = text.split(",")
-        # 鐐瑰嚮涓嬫媺妗�
-        self.click_wait(PackageList.add_memberTemplateLangType_select)
-        # 鑾峰彇鎵�鏈夐�夐」
-        options = self.get_elements_wait(PackageList.add_memberTemplateLangType_option)
-        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ョ殑閫夐」鐩哥瓑
-        for opt in options:
-            for lang_type in lang_types:
-                if opt.text == lang_type:
-                    # 鐩哥瓑鍒欑偣鍑昏閫夐」
-                    opt.click()
-                    break
+        self.click(self.es.prodTree_confirm_btn)
 
     def select_code_checkbox(self, check_text, uncheck_text):
         """
@@ -231,32 +287,23 @@
         :return:
         """
         # 鑾峰彇鎵�鏈変汉鍙i�夌紪鐮侀�夋鍏冪礌
-        code_boxs = self.get_elements_wait(PackageList.add_code_checkbox)
+        code_boxs = self.get_elements_wait(self.es.add_code_checkbox)
 
         # 灏哻heck_text鍒嗗壊
         code_check_texts = check_text.split(',')
+        # 閫夋嫨浜哄彛瀛︾紪鐮�
         for code_text in code_check_texts:
             for code_box in code_boxs:
                 if code_text == code_box.text:
                     code_box.click()
 
-        # 灏哻heck_text鍒嗗壊
+        # 灏唘ncheck_text鍒嗗壊
         code_uncheck_texts = uncheck_text.split(',')
+        # 鍙栨秷閫夋嫨浜哄彛瀛︾紪鐮�
         for code_text in code_uncheck_texts:
             for code_box in code_boxs:
                 if code_text == code_box.text:
                     code_box.click()
-
-
-
-    def add_confirm(self):
-        """
-        鐐瑰嚮纭鎸夐挳
-        :return:
-        """
-        # 鍥炲埌涓婁竴灞俰frame
-        self.switch_parent_iframe()
-        self.click_wait(PackageList.add_confirm_btn)
 
     def is_create_success(self, packageName):
         """
@@ -264,72 +311,101 @@
         :param packageName: 娴嬭瘯鍖呭悕绉�
         :return: bool
         """
-        names = self.get_elements_wait(PackageList.table_packageName_a)
+        names = self.get_eles(self.es.table_packageName_a)
         for name in names:
             if name.text == packageName:
                 return True
         return False
 
-    def click_package_checkbox(self, packageName):
+    def select_package_checkbox(self, packageName):
         """
         閫変腑娴嬭瘯鍖咃紝鍕鹃�夊搴旀祴璇曞寘鍒楄〃鐨勫閫夋
         :param packageName: 娴嬭瘯鍖呭悕绉�
         :return:
         """
         # 鑾峰彇鍒皌able鐨勬墍鏈塼r
-        table_trs = self.get_elements_wait(PackageList.table_package_tr)
+        table_trs = self.get_eles(self.es.table_package_tr)
         for tr in table_trs:
+            # 鍒ゆ柇澶嶉�夋鏄惁涓洪�変腑鐘舵��
+            tr_class = tr.get_attribute("class")
+            if tr_class == "selected":
+                # 宸茬偣鍑荤洿鎺ラ��鍑哄惊鐜�
+                continue
             # 娴嬭瘯鍖呭悕绉板湪tr涓殑瀹氫綅
             package_name_loc = (By.XPATH, "td[2]/a")
             # 鑾峰彇tr涓殑娴嬭瘯鍖呭悕绉�
-            tr_package_name = self.get_element_in(tr, package_name_loc).text
+            tr_package_name = tr.find_element(*package_name_loc).text
             if tr_package_name == packageName:
                 # 澶嶉�夋鍦╰r涓殑瀹氫綅
                 package_checkbox_loc = (By.XPATH, "td[1]/input")
                 # 鑾峰彇澶嶉�夋鍏冪礌
-                tr_checkbox = self.get_element_in(tr, package_checkbox_loc)
+                tr_checkbox = tr.find_element(*package_checkbox_loc)
                 # 鐐瑰嚮澶嶉�夋
                 tr_checkbox.click()
                 break
 
-    def click_share_1_btn(self):
+    def click_package_name(self, packageName):
         """
-        鐐瑰嚮鐢熸垚鍒嗕韩閾炬帴鎸夐挳
+        鐐瑰嚮鍖呭悕绉拌烦杞〉闈�
+        :param packageName:
         :return:
         """
-        self.click_wait(PackageList.share_1_btn)
+        # 鑾峰彇鍒版墍鏈夋祴璇曞寘鍚嶇Оa鏍囩
+        package_names = self.get_eles(self.es.table_packageName_a)
+        for name in package_names:
+            if name.text == packageName:
+                name.click()
 
-    def get_share_url(self):
+    def get_share_url(self, package_name):
         """
         鑾峰彇鍒嗕韩閾炬帴
         :return: url
         """
+        # 鍕鹃�夋祴璇曞寘
+        self.select_package_checkbox(package_name)
+        # 鐐瑰嚮鐢熸垚鍒嗕韩閾炬帴鎸夐挳
+        self.click(self.es.share_1_btn)
         # 鍒囨崲鍒皊hare鐨刬frame涓�
-        self.switch_iframe(PackageList.share_iframe)
+        self.switch_iframe(self.es.share_iframe)
         # 鑾峰彇url
-        url = self.get_input_value_js(PackageList.share_url_input)
+        url = self.get_value_js(self.es.share_url_input)
         # 閫�鍥炰笂涓�灞俰frame
         self.switch_parent_iframe()
         # 鐐瑰嚮鍏抽棴鎸夐挳
-        self.click_wait(PackageList.share_cancel_btn)
-        time.sleep(1)
+        self.click(self.es.share_cancel_btn)
+        time.sleep(2)
         return url
 
-    def selector(self, click_loc, options_loc, text):
+    def verify_code_checked(self, text: str):
         """
-        閫氱敤閫夋嫨鍣紝鐩存帴璋冪敤閫夋嫨涓嬫媺妗嗛�夐」
-        :param click_loc: 鐐瑰嚮鍚庡嚭鐜颁笅鎷夐�夐」鐨勫厓绱犲畾浣�
-        :param options_loc: 閫夐」鐨勫厓绱犲畾浣�
-        :param text: 鍒ゆ柇鐐瑰嚮鐨勬枃鏈�
+        鏍¢獙浜哄彛瀛︾紪鐮佹槸鍚﹀嬀閫�
         :return:
         """
-        # 鐐瑰嚮涓嬫媺妗�
-        self.click_wait(click_loc)
-        # 鑾峰彇鎵�鏈夐�夐」
-        options = self.get_elements_wait(options_loc)
-        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ョ殑閫夐」鐩哥瓑
-        for opt in options:
-            if opt.text == text:
-                # 鐩哥瓑鍒欑偣鍑昏閫夐」
-                opt.click()
-                break
+        texts = text.split(",")
+        # 鑾峰彇鍒版墍鏈変汉鍙e缂栫爜鐨刲abel
+        eles = self.get_eles(self.es.add_code_checkbox)
+        for ele in eles:
+            for t in texts:
+                if t == ele.text:
+                    ele_class = ele.find_element(By.XPATH, "div").get_attribute("class")
+                    # 濡傛灉class涓嶅寘鍚玞hecked鍒欒繑鍥濬alse
+                    if "checked" not in ele_class:
+                        return False
+
+
+    def verify_code_unchecked(self, text: str):
+        """
+        鏍¢獙浜哄彛瀛︾紪鐮佹槸鍚︽病鏈夎鍕鹃��
+        :return:
+        """
+        texts = text.split(",")
+        # 鑾峰彇鍒版墍鏈変汉鍙e缂栫爜鐨刲abel
+        eles = self.get_eles(self.es.add_code_checkbox)
+        for ele in eles:
+            for t in texts:
+                if t== ele.text:
+                    ele_class = ele.find_element(By.XPATH, "div").get_attribute("class")
+                    # 濡傛灉class鍖呭惈checked鍒欒繑鍥濬alse
+                    if "checked" in ele_class:
+                        return False
+

--
Gitblit v1.9.1