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

---
 base/base_page.py |  154 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 154 insertions(+), 0 deletions(-)

diff --git a/base/base_page.py b/base/base_page.py
new file mode 100644
index 0000000..fe27a1b
--- /dev/null
+++ b/base/base_page.py
@@ -0,0 +1,154 @@
+from selenium.common import TimeoutException
+from selenium.webdriver.support.wait import WebDriverWait
+from selenium.webdriver.support import expected_conditions as EC
+
+class BasePage:
+    # 鍒濆鍖栨柟娉�
+    def __init__(self, driver):
+        self.driver = driver
+
+    # 鍏冪礌瀹氫綅
+    def get_element(self, locator):
+        return self.driver.find_element(*locator)
+
+    # 澶氫釜鍏冪礌瀹氫綅
+    def get_elements(self, locator):
+        return self.driver.find_elements(*locator)
+
+    # 澶氫釜鍏冪礌瀹氫綅
+    def get_elements_wait(self, locator):
+        wait = WebDriverWait(self.driver, 10, 0.5)
+        wait.until(EC.presence_of_element_located(locator))
+        return self.driver.find_elements(*locator)
+
+    # 鍦ㄦ寚瀹氬厓绱犱腑瀹氫綅鍏冪礌
+    def get_element_in(self, element, locator):
+        return element.find_element(*locator)
+
+    # 鍦ㄦ寚瀹氬厓绱犱腑瀹氫綅澶氫釜鍏冪礌
+    def get_elements_in(self, element, *locator):
+        return element.find_elements(*locator)
+
+    # 鍏冪礌瀹氫綅
+    def get_element_wait(self, locator):
+        wait = WebDriverWait(self.driver, 10, 0.5)
+        wait.until(EC.presence_of_element_located(locator))
+        return self.driver.find_element(*locator)
+
+    # 浣跨敤js璇彞鐐瑰嚮
+    def script_click(self, *locator):
+        item = self.get_element(*locator)
+        self.driver.execute_script("arguments[0].click();", item)
+
+    def script_click_wait(self, *locator):
+        item = self.get_element_wait(*locator)
+        self.driver.execute_script("arguments[0].click();", item)
+
+    # 鐐瑰嚮
+    def click(self, locator):
+        """
+        鐐瑰嚮鍏冪礌
+        :param locator: 鍏冪礌瀹氫綅
+        :return:
+        """
+        self.get_element(locator).click()
+
+    def click_wait(self, *locator):
+        self.get_element_wait(*locator).click()
+
+    # 杈撳叆
+    def send_text(self, text, locator):
+        """
+        杈撳叆鍐呭
+        :param text: 鍐呭
+        :param locator: 鍏冪礌瀹氫綅
+        :return:
+        """
+        self.get_element(locator).send_keys(text)
+
+    def send_text_wait(self, text, *locator):
+        self.get_element_wait(*locator).send_keys(text)
+
+    # JavaScript鑾峰彇鍏冪礌鍊�
+    def get_input_value_js(self, locator):
+        input_box = self.get_element(locator)
+        input_value = self.driver.execute_script("return arguments[0].value", input_box)
+        return input_value
+
+    def get_input_value_js_wait(self, *locator):
+        input_box = self.get_element_wait(*locator)
+        input_value = self.driver.execute_script("return arguments[0].value", input_box)
+        return input_value
+
+    # 娓呴櫎
+    def clear_text(self, *locator):
+        self.get_element(*locator).clear()
+
+    def clear_text_wait(self, *locator):
+        self.get_element_wait(*locator).clear()
+
+    # 琛ㄥ崟鍒囨崲
+    def switch_iframe(self, locator):
+        self.driver.switch_to.frame(self.get_element(locator))
+
+    # 鍒囨崲鍒颁笂涓�灞傜殑iframe
+    def switch_parent_iframe(self):
+        self.driver.switch_to.parent_frame()
+
+    def switch_iframe_wait(self, locator):
+        self.driver.switch_to.frame(self.get_element_wait(locator))
+
+    # 绐楀彛鍒囨崲
+    def switch_window(self, n):
+        self.driver.switch_to.window(self.driver.window_handles[n])
+
+    # 妫�鏌ュ厓绱犳槸鍚﹀彲瑙佸彲鐐瑰嚮
+    def check_clickable(self, *locator):
+        wait = WebDriverWait(self.driver, 10, 0.5)
+        try:
+            e = wait.until(EC.element_to_be_clickable(locator))
+            if e is not None:
+                return True
+        except TimeoutException:
+            pass
+        return False
+
+    # 绛夊緟鍏冪礌鍑虹幇
+    def wait_appear(self, *locator):
+        wait = WebDriverWait(self.driver, 10, 0.5)
+        try:
+            e = wait.until(EC.presence_of_element_located(locator))
+            if e is not None:
+                return True
+        except TimeoutException:
+            pass
+        return False
+
+    # 婊戝姩椤甸潰
+    def scroll_by(self, num):
+        self.driver.execute_script("window.scrollBy(0, " + num + ");")
+
+    # 婊戝姩鍒板簳閮�
+    def scroll_to_bottom(self):
+        self.driver.execute_script("window.scrollBy(0,document.body.scrollHeight);")
+
+    # 婊戝姩鍒伴《閮�
+    def scroll_to_top(self):
+        self.driver.execute_script("window.scrollBy(0,0);")
+
+    # 鎴彇褰撳墠绐楀彛淇濆瓨涓哄浘鐗�
+    def get_png(self):
+        """鎴彇褰撳墠绐楀彛淇濆瓨涓哄浘鐗�"""
+        return self.driver.get_screenshot_as_png()
+
+    def open_new_table_to_url(self, url):
+        """
+        鎵撳紑涓�涓柊鐨勬爣绛鹃〉锛屽苟璺宠浆鍒版寚瀹氱殑url
+        :return:
+        """
+        # 鎵撳紑鏂版爣绛鹃〉
+        self.driver.execute_script("window.open()")
+        # 鍒囨崲鍒版柊鐨勬爣绛鹃〉
+        self.switch_window(-1)
+        # 鍦ㄦ柊鏍囩椤典腑鍔犺浇鎸囧畾url
+        self.driver.get(url)

--
Gitblit v1.9.1