From 023702f7d1d00015c1ba63c49e2161c58860efbc Mon Sep 17 00:00:00 2001
From: 阳洁 <2077506045@qq.com>
Date: 星期三, 12 七月 2023 16:51:00 +0800
Subject: [PATCH] 测评系统自动测试

---
 po/test_package_list_page.py |  285 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 285 insertions(+), 0 deletions(-)

diff --git a/po/test_package_list_page.py b/po/test_package_list_page.py
new file mode 100644
index 0000000..0ee54db
--- /dev/null
+++ b/po/test_package_list_page.py
@@ -0,0 +1,285 @@
+from base.base_page import BasePage
+from selenium.webdriver.common.by import By
+from elements.test_package_list_elements import TestPackageListElements as PackageList
+import time
+
+
+class TestPackageListPage(BasePage):
+    """
+    娴嬭瘯鍖呭垪琛ㄩ〉闈�
+    """
+
+    def __init__(self, driver):
+        """鍒濆鍖栨椂灏唅frame鍒囨崲鍒板綋鍓嶉〉闈�"""
+        super().__init__(driver)
+        try:
+            self.driver.switch_to.default_content()
+            self.switch_iframe(PackageList.this_iframe)
+        except:
+            pass
+
+    def create_btn(self):
+        """
+        鐐瑰嚮鍒涘缓鎸夐挳
+        :return:
+        """
+        self.click(PackageList.create_btn)
+        # 鍒囨崲鍒癮dd绐楀彛鐨刬frame
+        self.switch_iframe(PackageList.add_iframe)
+
+    def delete_package(self):
+        """
+        鍒犻櫎娴嬭瘯鍖�
+        :return:
+        """
+        # 鐐瑰嚮鍒犻櫎鎸夐挳
+        self.click(PackageList.delete_btn)
+        # 鐐瑰嚮纭鎸夐挳
+        self.click_wait(PackageList.delete_confirm_btn)
+
+    def testPackageName_input(self, testPackageName):
+        """
+        杈撳叆娴嬭瘯鍖呭悕绉�
+        :param testPackageName: 娴嬭瘯鍖呭悕绉�
+        :return:
+        """
+        self.send_text(testPackageName, PackageList.add_testPackageName_input)
+
+    def reportCompanyName_input(self, reportCompanyName):
+        """
+        杈撳叆鎶ュ憡浼佷笟鍚嶇О
+        :param reportCompanyName: 鎶ュ憡浼佷笟鍚嶇О
+        :return:
+        """
+        self.send_text(reportCompanyName, PackageList.add_reportCompanyName_input)
+
+    def testPackageType_select(self, testPackageType):
+        """
+        閫夋嫨娴嬭瘯鍖呯被鍨�
+        :param testPackageType:
+        :return:
+        """
+        # 鐐瑰嚮涓嬫媺妗�
+        self.click(PackageList.add_testPackageType_select)
+        # 鑾峰彇鎵�鏈夐�夐」
+        options = self.get_elements(PackageList.add_testPackageType_option)
+        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ョ殑閫夐」鐩哥瓑
+        for opt in options:
+            if opt.text == testPackageType:
+                # 鐩哥瓑鍒欑偣鍑昏閫夐」
+                opt.click()
+                break
+
+    def prodTree_select(self, prodName):
+        """
+        閫夋嫨浜у搧鍖�
+        :param prodName:
+        :return:
+        """
+        # 鐐瑰嚮鏌ヨ鎸夐挳
+        self.click(PackageList.add_prodTree_btn)
+        # 鍒囨崲鍒皃rodTree鐨刬frame
+        self.switch_iframe_wait(PackageList.prodTree_iframe)
+        time.sleep(2)
+        # 鑾峰彇鎵�鏈夐�夐」
+        options = self.get_elements(PackageList.prodTree_option)
+        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ラ�夐」鐩哥瓑
+        for opt in options:
+            if opt.text == prodName:
+                opt.click()
+                break
+        # 鍒囨崲鍒颁笂涓�灞傜殑iframe
+        self.switch_parent_iframe()
+        # 鐐瑰嚮纭鎸夐挳
+        self.click(PackageList.prodTree_confirm_btn)
+
+    def hrReportEmail_input(self, hr_email):
+        """
+        杈撳叆HR鎺ユ敹鎶ュ憡閭
+        :param hr_email:
+        :return:
+        """
+        self.send_text(hr_email, PackageList.add_hrEmail_input)
+
+    def invalidTime_input(self, invalid_time):
+        """
+        杈撳叆鏈夋晥鏈�
+        :param invalid_time:
+        :return:
+        """
+        self.send_text(invalid_time, PackageList.add_invalidTime)
+        self.click(PackageList.add_invalidTime)
+
+    def testTemplateLangType_select(self, text):
+        """
+        閫夋嫨娴嬭瘯鑰呴個璇烽偖浠跺唴瀹规ā鏉�
+        :param text: 璇█绫诲瀷锛屽彲浠ラ�夋嫨澶氫釜锛屼娇鐢� , 鍒嗛殧
+        :return:
+        """
+        # 鍒嗗壊text
+        lang_types = text.split(",")
+        # 鐐瑰嚮涓嬫媺妗�
+        self.click(PackageList.add_templateLangType_select)
+        # 鑾峰彇鎵�鏈夐�夐」
+        options = self.get_elements(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(PackageList.add_hrTemplateLangType_select)
+        # 鑾峰彇鎵�鏈夐�夐」
+        options = self.get_elements(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(PackageList.add_reportTemplateId_select)
+        # 鑾峰彇鎵�鏈夐�夐」
+        options = self.get_elements(PackageList.add_reportTemplateId_option)
+        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ョ殑閫夐」鐩哥瓑
+        for opt in options:
+            for template in templates:
+                if opt.text == template:
+                    # 鐩哥瓑鍒欑偣鍑昏閫夐」
+                    opt.click()
+                    break
+        # 鍐嶆鐐瑰嚮涓嬫媺妗�
+        self.click(PackageList.add_reportTemplateId_select)
+
+    def autoSendReport_checkbox(self):
+        """
+        鐐瑰嚮娴嬭瘯鑰呮帴鏀舵姤鍛�
+        :return:
+        """
+        self.click(PackageList.add_autoSendReport_checkbox)
+
+    def memberReportLangType_select(self, text):
+        """
+        娴嬭瘯鑰呮姤鍛婇偖浠惰瑷�绫诲瀷
+        :param text: 璇█绫诲瀷锛屽彲浠ラ�夋嫨澶氫釜锛屼娇鐢� , 鍒嗛殧
+        :return:
+        """
+        # 鍒嗗壊text
+        lang_types = text.split(",")
+        # 鐐瑰嚮涓嬫媺妗�
+        self.click(PackageList.add_memberTemplateLangType_select)
+        # 鑾峰彇鎵�鏈夐�夐」
+        options = self.get_elements(PackageList.add_memberTemplateLangType_option)
+        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ョ殑閫夐」鐩哥瓑
+        for opt in options:
+            for lang_type in lang_types:
+                if opt.text == lang_type:
+                    # 鐩哥瓑鍒欑偣鍑昏閫夐」
+                    opt.click()
+                    break
+
+    def add_confirm(self):
+        """
+        鐐瑰嚮纭鎸夐挳
+        :return:
+        """
+        # 鍥炲埌涓婁竴灞俰frame
+        self.switch_parent_iframe()
+        self.click(PackageList.add_confirm_btn)
+
+    def is_create_success(self, packageName):
+        """
+        鍒ゆ柇杩欎釜娴嬭瘯鍖呮槸鍚﹀垱寤烘垚鍔�
+        :param packageName: 娴嬭瘯鍖呭悕绉�
+        :return: bool
+        """
+        names = self.get_elements(PackageList.table_packageName_a)
+        for name in names:
+            if name.text == packageName:
+                return True
+        return False
+
+    def click_package_checkbox(self, packageName):
+        """
+        閫変腑娴嬭瘯鍖咃紝鍕鹃�夊搴旀祴璇曞寘鍒楄〃鐨勫閫夋
+        :param packageName: 娴嬭瘯鍖呭悕绉�
+        :return:
+        """
+        # 鑾峰彇鍒皌able鐨勬墍鏈塼r
+        table_trs = self.get_elements(PackageList.table_package_tr)
+        for tr in table_trs:
+            # 娴嬭瘯鍖呭悕绉板湪tr涓殑瀹氫綅
+            package_name_loc = (By.XPATH, "td[2]/a")
+            # 鑾峰彇tr涓殑娴嬭瘯鍖呭悕绉�
+            tr_package_name = self.get_element_in(tr, 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.click()
+                break
+
+    def click_share_1_btn(self):
+        """
+        鐐瑰嚮鐢熸垚鍒嗕韩閾炬帴鎸夐挳
+        :return:
+        """
+        self.click(PackageList.share_1_btn)
+
+    def get_share_url(self):
+        """
+        鑾峰彇鍒嗕韩閾炬帴
+        :return: url
+        """
+        # 鍒囨崲鍒皊hare鐨刬frame涓�
+        self.switch_iframe(PackageList.share_iframe)
+        # 鑾峰彇url
+        url = self.get_input_value_js(PackageList.share_url_input)
+        # 閫�鍥炰笂涓�灞俰frame
+        self.switch_parent_iframe()
+        # 鐐瑰嚮鍏抽棴鎸夐挳
+        self.click(PackageList.share_cancel_btn)
+        return url
+
+
+    def selector(self, click_loc, options_loc, text):
+        """
+        閫氱敤閫夋嫨鍣紝鐩存帴璋冪敤閫夋嫨涓嬫媺妗嗛�夐」
+        :param click_loc: 鐐瑰嚮鍚庡嚭鐜颁笅鎷夐�夐」鐨勫厓绱犲畾浣�
+        :param options_loc: 閫夐」鐨勫厓绱犲畾浣�
+        :param text: 鍒ゆ柇鐐瑰嚮鐨勬枃鏈�
+        :return:
+        """
+        # 鐐瑰嚮涓嬫媺妗�
+        self.click(click_loc)
+        # 鑾峰彇鎵�鏈夐�夐」
+        options = self.get_elements(options_loc)
+        # 鍒ゆ柇閫夐」鏄惁涓庝紶鍏ョ殑閫夐」鐩哥瓑
+        for opt in options:
+            if opt.text == text:
+                # 鐩哥瓑鍒欑偣鍑昏閫夐」
+                opt.click()
+                break

--
Gitblit v1.9.1